私のアプリでは、SMSとMMSの両方のログをクエリして、すべての着信メッセージと発信メッセージの履歴を取得する必要があります。このコードはSMSでうまく機能しました:
Cursor c = cr.query(Uri.parse("content://sms"), null, null, null, null);
しかし、次のことを試してみると、まったく異なる結果が得られます。
Cursor c = cr.query(Uri.parse("content://mms"), null, null, null, null);
SMSクエリは、メッセージアドレス(電話番号)、連絡先名、メッセージの件名、メッセージ本文などを含むデータを返します。MMSの同じクエリは、意味をなさない一連のnullまたは数値フィールドを返します。の。電話番号または連絡先IDが関連付けられた、現在電話にあるすべてのMMSメッセージのリストが本当に必要です。また、メッセージが着信メッセージか発信メッセージかを確認する必要があります。SMSクエリの結果では、フィールドから電話番号を取得でき、address
フィールドから着信/発信タイプを取得できtype
ますが、MMSをクエリすると、どちらも存在しません。
この種のMMSデータを照会する必要がある別のコンテンツURIはありますか?どんな助けでも大歓迎です。
編集:明確にするために、私はこれがサポートされていないコンテンツプロバイダーであることを完全に認識しています。ただし、これを行うためのサポートされている方法がないため、電話ごと/OSバージョンごとにこれをテストしてサポートするつもりです。議論を軌道に乗せるために、この質問はHTC Dream(G1)またはHTC Magic(MyTouch)上のAndroid1.6に固有であるとしましょう。その特定の電話とOSのバージョンでこのタスクをどのように達成しますか?または、それらでは不可能であるが、MotorolaDroidのAndroid2.0では可能である場合は、その情報も非常に役立ちます。しかし、それにもかかわらず、サポートされている方法またはサポートされていない方法でこのタスクを実行する方法の議論に固執し、APIでサポートされていないものから私たち全員を遠ざける方法の議論に委ねないようにしましょう。これは、Androidのディスカッショングループがいじくり回されていると私が感じていることであり、何の助けにもならない、と私は感じています。サポートされていない方法を使用している場合は、それで問題ありません。そのタスクを実行するためのサポートされている方法を教えてください。サポートされているメソッドがない場合、なぜAPIがandroid.permission.READ_SMSを介してSMSを読み取る許可を要求できるようにするのですか?