首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过编程提高IntentFilter的优先级

如何通过编程提高IntentFilter的优先级
EN

Stack Overflow用户
提问于 2012-12-18 15:06:50
回答 1查看 3.6K关注 0票数 1

这就是我如何设置我的应用程序意图过滤器highest.After接收意图附加的优先级,因为我中止了广播,但本机应用程序仍然在接收短信,通知栏仍然显示最烦人的消息内容,因为我不希望它显示消息正文。我是不是漏掉了什么?

代码语言:javascript
复制
<receiver android:name=".MySmsReceiver" > 
<intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED"
            android:priority="999"
             /> 
</intent-filter> 
</receiver>

这是我的接收器的onReceive()方法

代码语言:javascript
复制
public void onReceive(final Context context, Intent intent) {

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-18 15:19:16

试着这样声明你的接收者:

代码语言:javascript
复制
<receiver android:name=".MySmsReceiver">
    <intent-filter android:priority="999">
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>

而不是:

代码语言:javascript
复制
<receiver android:name=".MySmsReceiver" > 
<intent-filter> 
        <action android:name="android.provider.Telephony.SMS_RECEIVED"
            android:priority="999"
             /> 
</intent-filter> 
</receiver>

在中止广播之前,还要尝试检查以下条件:

编辑:

代码语言:javascript
复制
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(SMS_RECEIVED)) {
        Bundle extras = intent.getExtras();
        if(extras != null)
          // doBroadcast();
        else
           abortBroadcast();
    }
}

希望能对你有所帮助。

谢谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13927977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档