Android abortBroadcast()很奇怪

时间:2012-05-22 16:20:39

标签: android android-emulator sms

我制作了一些程序,可以从手机中删除不需要的短信(通过特殊过滤器)。

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

也许,有人可以给我建议吗?

1 个答案:

答案 0 :(得分:2)

有两种类型的广播,有序和无序。据我所知,短信是无序广播,这就是为什么你不能真正中止它。

http://developer.android.com/reference/android/content/BroadcastReceiver.html#Security

我不确定你说它在某些设备上有效。理想情况下,它不应该用于短信接收广播。