2

这篇文章中对 Android 消息数据库的解释How to Read MMS Data in Android? 非常有帮助。不幸的是,我没有足够的声誉要求在那里进行澄清。我需要知道发送彩信的时间。这可以通过数据库获得吗?如果没有,它是否保存在其他任何地方?从发送端的手机获取发送时间也可以。

编辑:我现在看到 DATE_SENT 属性可用,但我不知道如何访问它。是否有类似地址的提供者?

更新:这是我的代码的样子:

int id = 0;
ContentResolver contentResolver = getContentResolver();
final String[] projection = new String[]{"*"};
Uri uri = Uri.parse("content://mms-sms/conversations/");
Cursor query = contentResolver.query(uri, projection, null, null, null);
if (query.moveToFirst()) {
    do {
        String string = query.getString(query.getColumnIndex("ct_t"));
        if ("application/vnd.wap.multipart.related".equals(string)) {
            //MMS
            System.out.println("b:mms found");
            System.out.println("b:thing in table is " + query.getString(query.getColumnIndex("_id")));
            id = Integer.parseInt(query.getString(query.getColumnIndex("_id")));
            System.out.println("b:" + getAddressNumber(id));
        } else {
            //SMS
            System.out.println("b:sms found");
        }
    } while (query.moveToNext());
}

它适用于 _id 和日期的列索引,但不适用于 date_sent。

4

1 回答 1

2

是的,日期在其中一个数据库中,但由于它没有记录且不受支持,它可能而且可能会随着时间而改变。您将不得不通过源代码来查看如何访问。

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/provider/Telephony.java?av=f

我已经与 mms 提供商打过交道,但没有记录且在不同设备之间存在差异并不好玩

于 2013-01-23T19:56:22.250 回答