1

新しいテキストメッセージを受信すると代替通知LEDを点滅させるHTCEVO用のシンプルなアプリに取り組んでいます。私はこの部分をブロードキャストレシーバー経由でうまく機能させていますが、ユーザーがデフォルトのSMSアプリを使用してメッセージを読んだときにLEDをオフにする方法が必要です。これをレシーバーで行うのが最善か、バックグラウンドサービスで行うのが最善かはわかりません。これを見つけまし。これは私が探しているものかもしれませんが、手順やチュートリアルが見つからなかったため、使用方法がわかりません。

4

2 に答える 2

3

了解しました。ニーズを満たすと思われる次のコードを作成しました。

private int getUnreadSMSCount()
{
    int count = 0;
    Uri smsURI = Uri.parse("content://sms");
    ContentResolver contentResolver = this.getContentResolver();
    Cursor cursor = contentResolver.query(smsURI, null, "read=0", null, null);
    if (cursor != null)
    {
        try
        {
            count = cursor.getCount();
        }
        finally
        {
            cursor.close();
        }
    }

    return count;

}

于 2010-08-23T23:52:52.467 に答える
0

残念ながら、これを行う方法はないと思います。

BroadcastReceiver受信すると、デフォルトのSMSアプリと同じIntentのコピーになります。Intentしたがって、それぞれが互いに独立したメッセージのコピーを持っています。

メッセージの独自のコピーを読み取るように設定することはできますが、デフォルトのSMSアプリでそのステータスを確認することはできません。また、デフォルトのアプリはメッセージが読み取られたというブロードキャストを送信せず、そのデータはすべてローカルに保持されます。

これを実装できる唯一の方法は、メッセージングアプリの完全な代替品を作成することです。

申し訳ありませんが、これがお役に立てば幸いです。他にご不明な点がありましたらお知らせください。

于 2010-08-22T20:20:17.913 に答える