0

着信 SMS メッセージを問題なく傍受する SMS レシーバーを実装しました。ただし、GO SMS Pro をインストールして「他のメッセージ通知を無効にする」を設定すると、インテント フィルターの優先度を非常に高く設定しても、アプリはブロードキャスト メッセージを受信しません。特に私のアプリはUIポップアップ通知を表示しないため、ユーザーがGo SMS Proのアプリで何をしたかに関係なく、私のアプリが常にSMSブロードキャストを受信するように克服する方法はありますか? GO SMS Pro をアンインストールするとすぐに、アプリが SMS ブロードキャストの受信を開始し、正常に動作します。

着信 SMS を受信し、GO SMS Pro をインストールしたときのログは次のとおりです。私が理解していないGO SMS Proによって行われたいくつかの魔法があります. 誰かがここで何が行われているかを説明できますか?また、アプリが毎回注文されたブロードキャスト通知を受け取るようにするにはどうすればよいですか?

4

2 に答える 2

0

GO SMSの絶対最大値を設定しました2147483647 (2^31-1)。したがって、同じ優先度を設定した場合、その場合、Android OS はブロードキャストを古いアプリ (最初にインストールされたアプリ) に渡します。アプリの前に Go SMS Pro がインストールされている場合は、ユーザーに状況について警告する必要があります。Go SMS Pro を別の方法で構成するか、アンインストールしてから再インストールして、アプリも機能するようにすることができます。

<receiver android:name=".SMSReceiver" > 
    <intent-filter android:priority="2147483647"> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver>

次に、SMSReceiver onReceive()で、 abortBroadcast()を追加して、それ以上のブロードキャストを中止する必要があります

public void onReceive(Context context, Intent intent) {
  abortBroadcast();
}
于 2013-08-06T09:46:24.537 に答える