4

下書きの SMS のアドレスを取得できませんnull。次のコードを使用すると常に iam が表示されます

 public static final Uri SMS_PROVIDER = Uri.parse("content://sms");     
     Cursor oCursorSMS = mContext.getContentResolver().query(SMS_PROVIDER, null,null,null, null);                                                           
oCursorSMS.moveToFirst();                                     
        final String[] columns = oCursorSMS.getColumnNames();                           
        for (int i = 0; i < columns.length; i++) {
            String ss = cursor.getString(i);
            } 

下書きの SMS を読んでいるときに、アドレス列が返されますnull。たくさん検索しましたが、この問題について多くの質問がありますが、誰も答えがありません。誰でもこれで私を助けることができます

4

1 に答える 1

7

URIからcontent://mms-sms/conversations?simple=trueスレッドテーブルにアクセスできます。スレッドテーブルにはrecipient_ids 、アドレスを取得するために使用できる列があります。その方法については、こちらの回答を参照してください。基本的に、thread_idSMSからを取得し、それを使用してスレッドテーブルを確認する必要があります。つまり、フィルターはである必要があります_id = thread_id_from_sms。次に、recipient_idsを取得し、それを使用してアドレスを検索します。content://mms-sms/canonical-addresses

于 2012-09-26T15:50:07.217 に答える