0

これは、2 つのテキストビューを持つリストビューに関連しています。最初の textview には連絡先が一覧表示されますが、2 番目の textview には関連する連絡先からの受信トレイ内のメッセージ数が表示されると想定されています。

解析することで、デバイスの受信トレイにあるメッセージの数を数えることができました

String inbox = "content://sms/inbox"

文字列に。しかし、私は一時金を得るだけではなく、もっと深く掘り下げたいと思っています。受信トレイをさらに深く調べて、メッセージの総数を対応する連絡先に分けることはできますか? 例として、連絡先が 3 つあり、一括で 20 件のメッセージがあり、連絡先 1 には 11 件のメッセージがあり、連絡先 2 には 4 件のメッセージがあり、連絡先 3 には 6 件のメッセージがあるとします。

4

1 に答える 1

0

各送信者からの受信トレイ内のテキストの数を取得するには、SQL Group By 句を使用できます。これは、Group By 句を ContentProvider に忍び込ませる一般的なトリックです。

Cursor cursor = getContentResolver().query(
        Uri.parse("content://sms/inbox/"),
        new String[] { "_id", "address", "count(*) as totals" },
        "1) Group By (address",
        null,
        null);

ただし、これは Android 4.0 以降では機能しません。(私にとって、Group By 句なしで ContentProviders を設計することは、数字のないキーボードを製造するようなものです...) 4.0 以降では、通常のカーソルを反復処理し、メッセージを自分でソートすることをお勧めします。

于 2012-05-14T21:26:57.350 に答える