Я только что получил обновление для Hangouts 2.0, установил его и включил SMS
Turn on SMS
. Теперь мое приложение, работающее под управлением Android 4.3, больше не может получать SMS, т.е. мой BroadcastReceiver для SMS_RECEIVED
больше не вызывается. :-(
Как только я отключу Turn on SMS
в Hangouts 2.0, мое приложение снова сможет получать SMS_RECEIVED.
Получатель широковещательной передачи зарегистрирован в манифесте следующим образом
AndroidManifest.xml
…
<receiver android:name=".SMSReceiver" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
…
SMSReceiver.java
public class SMSReceiver extends BroadcastReceiver {
private static final Log LOG = Log.getLog();
@Override
public void onReceive(Context context, Intent intent) {
LOG.d("onReceive");
…
}
}
Я уже пытался изменить приоритет получателя на INT_MAX или 999, что является наивысший возможный приоритет согласно документации по фильтру намерений, но безуспешно. Я знаю, что SMS_RECEIVED
намерения отправляются упорядоченно и что приложения с высоким приоритетом могут прервать трансляцию. 1 < / sup> Но кажется маловероятным, что Hangouts 2.0 регистрирует приемник SMS_RECEIVED
с высоким приоритетом и вызывает _ 9_, что предотвращает получение намерения другими приложениями.
Что меня еще больше смутило, так это то, что мой Pebble все еще может получать SMS, даже с Hangouts 2.0 в качестве приложения для SMS по умолчанию. Интересно, чем Pebble отличается? Я только что заметил, что входящие SMS-уведомления на моем Pebble больше не являются уведомлениями о новых SMS, получаемых приложением Pebble, а вместо этого являются уведомлениями о новых сообщениях Hangout, которые вызваны видеовстречи, принимающие входящие смс. Таким образом, приложение Pebble также не может получать входящие текстовые сообщения с SMS_RECEIVED
.
Кстати, это не совсем связано с этой проблемой, потому что я все еще использую Android 4.3 (но мое приложение нацелено на SDK уровня 19, Android 4.4, если это имеет значение). Сообщение в блоге разработчиков Android от Google о новый API SMS в Kitkat, сказал, что ничего не будет измените для приложений, использующих только SMS_RECEIVED, и не пытайтесь написать SMS провайдеру SMS.
1 Я всегда считал, что рассылка SMS_RECEIVED может быть прервана. Но на сайте API Android 4.4 сказано иное: «… когда приходит новое SMS-сообщение путем прослушивания широковещательной рассылки SMS_RECEIVED_ACTION, которая является неотменяемой рассылкой… "