私はSMSReceiverで作業しており、メッセージが到着するとSMSのアドレス、メッセージ、時間を表示するダイアログが表示されます。ユーザーがカスタム ダイアログで [OK] ボタンをクリックしたときに通知アイコンを削除したい。どうすればこれができるか教えてください。
前もって感謝します。
私はSMSReceiverで作業しており、メッセージが到着するとSMSのアドレス、メッセージ、時間を表示するダイアログが表示されます。ユーザーがカスタム ダイアログで [OK] ボタンをクリックしたときに通知アイコンを削除したい。どうすればこれができるか教えてください。
前もって感謝します。
通知を直接削除することはできません。これは、通知が別のアプリケーション (システム メッセージ アプリまたはカスタム SMS アプリ) によって生成されているためです。通知を生成するアプリのみが通知を削除できます。
ただし、できることはあります。
着信 SMS のシステム ブロードキャストをさらに伝播する代わりに消費することができます。これは、SMS メッセージの処理を担当する他のアプリケーションが、新しいメッセージが配信されたことを通知されないことを意味します。
そのためには、次のことを行う必要があります。
受信機の優先度を上げます:
<receiver android:name=".SmsReceiver">
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
onReceive()
実装でブロードキャストを中止します。
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
// Do whatever with the message
abortBroadcast(); // Stop the broadcast from being propagated further
}
}