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