4

私はSMSアプリケーションに取り組んでいます。私のアプリでは、すべての会話をリストする必要があります。したがって、次のUriを使用します。

content://mms-sms/conversations/

正常に動作しています。以下は私のコードスニペットです。

 Uri uri = Uri.parse("content://mms-sms/conversations/");
 Cursor c= getContentResolver().query(uri, null, null ,null,null);
 startManagingCursor(c);
 if(c.moveToFirst()){

            for(int i=0;i<c.getCount();i++){
                     body[i]= c.getString(c.getColumnIndexOrThrow("body")).toString();
                     number[i]=c.getString(c.getColumnIndexOrThrow("address")).toString();
                     c.moveToNext();
             }
    }
    c.close();

    for (int i = 0; i < body.length; i++) {
        System.out.println("body ="+body[i]);
        System.out.println("number ="+number[i]);
    }

番号は各会話番号を印刷し、本文は各会話の最後のメッセージを印刷します。しかし、私は各会話のメッセージ全体を取得し、特定の番号の会話を支援したいと思っています。

4

1 に答える 1

1

Conversationsカーソルから、を取得できますthread_id。取得したらthread_id、クエリを続行sms providerして、同じメッセージをすべて返します。thread_id

例:thread_id= 2

Uri SMS_INBOX = Uri.parse("content://sms");
Cursor c = getContentResolver().query(SMS_INBOX, null, "thread_id" + " = "
                + "2", null,
                "date" + " ASC");


while (c.moveToNext()){

        Log.v("BODY", c.getString(11).toString()); // 11 is the index of body with project URI

    }
于 2012-08-14T08:34:23.063 に答える