2

この投稿での Android メッセージング データベースの説明How to Read MMS Data in Android? 非常に役に立ちました。残念ながら、私には説明を求めるほどの評判はありません。MMS メッセージが送信された時刻を取得する必要があります。これはデータベースから入手できますか? そうでない場合、他の場所に保存されていますか?送信側の電話から送信時刻を取得することもできます。

編集: 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 の列インデックスでは機能しますが、date_sent では機能しません。

4

1 に答える 1

2

はい、日付はデータベースの1つにありますが、文書化されておらず、サポートされていないため、時間の経過とともに変更される可能性があります. アクセス方法を確認するには、ソース コードを確認する必要があります。

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 に答える