Я делаю какую-то программу, которая удаляет нежелательные SMS с телефона (специальным фильтром).Android abortBroadcast() работает странно
Используется aborBroadcast() для прекращения отправки SMS.
В эмуляторе он работает нормально, на некоторых мобильных телефонах (я также тестировал Android 2.2).
Но в некоторых телефонах (Samsung, 2.3.3) это не останавливает SMS. И после того, как моя программа удалена, мобильный телефон снова получит ВСЕ sms, что было прервано.
Мой 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();
}
Может быть, кто-нибудь может посоветовать мне?
Я проверил это простым кодом: if (isOrderedBroadcast()) sendToLog ("SMSIL", "Ordered."); else sendToLog ("SMSIL", "NOT Ordered."); И ведется вещание. – Andrey
Странно. BTW, я попытался прервать эту трансляцию на эмуляторе 2.3, и это не сработает. Я совершенно уверен, что вы не можете прервать эту трансляцию. Как вы упомянули, это может работать на нескольких устройствах. –
Одна вещь, которую я заметил, если вы установите приоритет 1000, http://developer.android.com/reference/android/content/IntentFilter.html#SYSTEM_HIGH_PRIORITY, похоже, работает на эмуляторе, на котором он не был , MAGIC !!!! –