我制作了一些程序,可以从手机中删除不需要的短信(通过特殊过滤器)。
它使用aborBroadcast()来停止短信。
在模拟器中,它在某些手机上(我使用Android 2.2测试过)也可以正常工作。
但在某些手机(三星,2.3.3)中,它并没有停止短信。移除程序后,移动设备再次接收所有短信,中止了。
我的android.manifest代码:
<receiver android:name=".SmsHandler" >
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
我的处理程序代码:
if msgText.contains(GlobalVars.getInstance().getFilterText())) {
abortBroadcast();
}
也许,有人可以给我建议吗?
答案 0 :(得分:2)
有两种类型的广播,有序和无序。据我所知,短信是无序广播,这就是为什么你不能真正中止它。
http://developer.android.com/reference/android/content/BroadcastReceiver.html#Security
我不确定你说它在某些设备上有效。理想情况下,它不应该用于短信接收广播。