2012-03-22 5 views
5

メッセージアプリケーションと同様に、最初のアクティビティでは、人によってグループ化された最新のSMSとカウント番号が表示されます。私はアリーン、レイと40とクリス、60と50行のテキストを交換していた連絡先別の最新のSMSメッセージグループを照会

例... アプリはこの

Chris (50) Hey how are you lately ?  
Aline (60) Let's catch up  
Ray (40) Here is my number 
Ethan (1) I wrote a solution 

のようなものが表示されます、私は同じことをやろうとしています。私はすべてのSMSを照会してから並べ替えます。 少なくともそれは効率的なO(n)です。

Cursor cur = this.getContentResolver().query(Uri.parse("content://sms"), null, null, null, null); 
int count = cur.getCount(); 

// iterate all the SMS 
for (int i=1 ; i<=count ; i++){ 
    // processing 
    .... 

    cur.moveToNext(); 
} 

クエリへの道は、最新のメッセージが(受信または全くドラフトタイプを送信されません)人物ごとにグループ化された人からのSMSの番号を取得ありますか? 複数のクエリがあるとします。

答えて

9

私は、これはあなたがやりたいだろうと思う:

Cursor cur = this.getContentResolver().query(Uri.parse("content://mms-sms/conversations?simple=true"), null, null, null, "normalized_date desc"); 

返されたカーソルは、各会話の中ですべての会話の中で、最新のメッセージとメッセージの量が含まれています。

+0

これは機能します。メッセージ数は「message_count」列です。 "android.permission.READ_SMS"を忘れないでください。この単純なコードスニペットはどこで手に入りましたか? –

+0

自分でSMS解析をしているときに、まったく同じ問題が発生するのを覚えています。クイックグーグルをして、実際にいくつかの情報源を見つけました。それがうれしかった。 – gelupa

+0

ご協力いただきありがとうございます。 (_id、 日、 MESSAGE_COUNT、 recipient_ids、 スニペット、 snippet_cs、 読み取り、 タイプ、 :私はこれらがあなたのクエリによって返される列であることを気づいた:) –

関連する問題