1

これが、アプリケーションインテントフィルターの優先度を最も高く設定する方法です。インテントエクストラを受信した後、ブロードキャストを中止しますが、ネイティブアプリはまだSMSを受信して​​おり、通知バーにはメッセージコンテンツが表示されています。メッセージ本文を表示したい。足りないものはありますか?

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

これは私の受信機のonReceive()方法です

public void onReceive(final Context context, Intent intent) {

    Bundle extras = intent.getExtras();
    abortBroadcast();
             ....
 }
4

1 に答える 1

2

この方法で受信者を宣言してみてください:

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

それ以外の :

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

また、ブロードキャストを中止する前に、次の条件を確認してください。

編集済み:

@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(SMS_RECEIVED)) {
        Bundle extras = intent.getExtras();
        if(extras != null)
          // doBroadcast();
        else
           abortBroadcast();
    }
}

お役に立てば幸いです。

ありがとう。

于 2012-12-18T07:19:16.307 に答える