1

私はSMSReceiverで作業しており、メッセージが到着するとSMSのアドレス、メッセージ、時間を表示するダイアログが表示されます。ユーザーがカスタム ダイアログで [OK] ボタンをクリックしたときに通知アイコンを削除したい。どうすればこれができるか教えてください。

前もって感謝します。

4

1 に答える 1

1

通知を直接削除することはできません。これは、通知が別のアプリケーション (システム メッセージ アプリまたはカスタム 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
     }
 }
于 2012-09-09T10:35:21.450 に答える