1

私は、SMS を処理するアプリケーションを作成しています。計画どおり、ストック/デフォルト アプリケーションを置き換える必要があります。

着信SMSによって発射されたブロードキャストを傍受android.provider.Telephony.SMS_RECEIVEDし、独自の通知を発行してから呼び出しabortBroadcast()ているため、最終的にデフォルト/ストックアプリにつながる着信新しいメッセージの通知はありません.

しかし、問題は実際には、ユーザーが十分な時間 (数分程度) 読んでいない場合に、着信 SMS ストック/デフォルト アプリが別のブロードキャストを発生させることです。そのため、ユーザーには 2 つの通知が表示されます。1 つはデフォルト/ストック メッセージング アプリからのもので、もう 1 つは地雷からのものです。

未読の SMS があると、どのブロードキャストが開始されたかわかりません。

アイデア、ヒントはありますか?

4

1 に答える 1

-1

この方法でレシーバーの優先度を設定できるため、レシーバーが最優先され、onReceive()メソッドが実行されることがわかります。

<receiver android:name=".SmsReceiver" android:enabled="true"
    android:exported="true" android:priority="999">
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
于 2012-09-19T14:33:35.737 に答える