Включение поддержки SMS в Hangouts 2.0 отключает BroadcastReceiver SMS_RECEIVED в моем приложении

Я только что получил обновление для Hangouts 2.0, установил его и включилSMSTurn on SMS, Теперь мое приложение, работающее под Android 4.3, больше не может получать SMS, т.е. мой BroadcastReceiver forSMS_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 Но кажется маловероятным, что Hangouts 2.0 регистрируетSMS_RECEIVED приемник с высоким приоритетом и вызовabortBroadcast(), следовательно, не позволяя другим приложениям получать намерения.

Что еще больше смутило меня, так это то, что мой Pebble все еще может получать SMS, даже с Hangouts 2.0 в качестве стандартного SMS-приложения. Интересно, чем Pebble отличается? Я только что заметил, что уведомления о входящих SMS-сообщениях на моем Pebble больше не являются уведомлениями о новых SMS-сообщениях, полученных приложением Pebble, а представляют собой уведомления о «новых сообщениях видеовстречи», вызванные видеовстречами, получающими входящие SMS-сообщения. Таким образом, приложение Pebble также не может получать входящие текстовые сообщения сSMS_RECEIVED.

С другой стороны, я не очень связан с этой проблемой, потому что я все еще на Android 4.3 (но мое приложение предназначено для уровня SDK 19, на Android 4.4, если это имеет значение). Блог Google для разработчиков Android оновый SMS API в Kitkat, сказал, что ничего не изменится для приложений, использующих только SMS_RECEIVED, и не пытайтесь записать SMS для поставщика SMS.

1 Я всегда считал, что трансляция SMS_RECEIVED прерывается. НоСайт API Android 4.4 говорит что-то другое: «… когда приходит новое SMS, слушая трансляцию SMS_RECEIVED_ACTION, которая являетсябез Отменяется вещать ...»

Ответы на вопрос(5)

Ваш ответ на вопрос