停止短信传播

时间:2011-02-07 09:14:24

标签: android

我试图在收到这样的短信时不传播短信

public class SMSReceiver extends BroadcastReceiver {
@Override
    public void onReceive(Context context, Intent intent) {
        abortBroadcast();
        setResultData(null);
    }
}

的AndroidManifest.xml

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

但这不起作用。我一直在寻找解决方案。任何帮助都非常感谢。

由于

2 个答案:

答案 0 :(得分:6)

您需要在android:priority上设置<intent-filter>属性,而不是<receiver>

e.g

<intent-filter android:priority="9999" >
  

仅在您确实需要强制执行特定订单时才使用此属性   收到广播,或者想强制Android播放   比其他人更喜欢一项活动。该值必须是整数,例如   “100”。数字越大,优先级越高。 (该订单仅适用   同步消息;它被异步消息忽略了。)

http://developer.android.com/guide/topics/manifest/intent-filter-element.html

答案 1 :(得分:0)

由于我无法在@ Christopher Orr的答案中添加评论,因此必须指出优先级必须介于[-1000,1000]之间。 9999太多了。

  

值必须是整数,例如&#34; 100&#34;。更高的数字有一个   优先级更高。默认值为0.值必须更大   比-1000还不到1000。

http://developer.android.com/guide/topics/manifest/intent-filter-element.html