gpt4 book ai didi

android - 如何以编程方式增加 IntentFilter 的优先级

转载 作者:行者123 更新时间:2023-11-30 03:52:28 27 4
gpt4 key购买 nike

这就是我将我的应用程序 Intent 过滤器的优先级设置为最高的方式。在收到 Intent Extras 后我中止了广播,但 native 应用程序仍在接收短信并且通知栏仍在显示最烦人的消息内容因为我不希望它显示邮件正文。有什么我想念的吗??

<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();
....
}

最佳答案

尝试以这种方式声明您的接收者:

<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();
}
}

希望对你有帮助。

谢谢。

关于android - 如何以编程方式增加 IntentFilter 的优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com