Włączenie obsługi wiadomości SMS w Hangoutach 2.0 przerywa BroadcastReceiver SMS_RECEIVED w mojej aplikacji

Właśnie otrzymałem aktualizację do Hangoutów 2.0, zainstalowałem ją i włączyłemSMSTurn on SMS. Teraz moja aplikacja, działająca pod kontrolą systemu Android 4.3, nie jest już w stanie odbierać wiadomości SMS, tj. Mojego odbiorcy transmisjiSMS_RECEIVED nie jest już nazywany. :-(

Jak tylko wyłączyłemTurn on SMS w Hangoutach 2.0 moja aplikacja może ponownie otrzymać intencje SMS_RECEIVED.

Odbiornik rozgłoszeniowy jest zarejestrowany w Manifeście w ten sposób

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");
            …
    }
}

Próbowałem już zmienić priorytet odbiornika na INT_MAX lub 999, czyli nanajwyższy możliwy priorytet w dokumentacji filtrów intencyjnych, ale bez powodzenia.wiem toSMS_RECEIVED intencje są wysyłane uporządkowane, a aplikacje o wysokim priorytecie mają możliwość przerwania transmisji.1 Jednak wydaje się mało prawdopodobne, aby Hangouts 2.0 rejestrowałSMS_RECEIVED odbiornik o wysokim priorytecie i wywołaniuabortBroadcast()dlatego uniemożliwia innym aplikacjom otrzymanie intencji.

Co mnie jeszcze bardziej myliło, to że mój Pebble wciąż może odbierać SMS-y, nawet z Hangoutami 2.0 jako domyślną aplikacją SMS. Ciekawe, co robi Pebble? Właśnie zauważyłem, że powiadomienia o przychodzących wiadomościach SMS na moim Pebble nie są już powiadomieniami o nowych wiadomościach SMS, które są odbierane przez aplikację Pebble, ale zamiast tego są to powiadomienia „nowej wiadomości Hangouta” spowodowane przez hangouty odbierające przychodzące wiadomości SMS. Aplikacja Pebble nie jest też w stanie odbierać przychodzących wiadomości tekstowych za pomocąSMS_RECEIVED.

Na marginesie i niezupełnie związany z tym problemem, ponieważ wciąż jestem na Androidzie 4.3 (ale moja aplikacja jest przeznaczona na SDK poziom 19, Android 4.4 na wypadek, gdyby to miało znaczenie) Google Blog Developers Post na temat Googlenowe API SMS w Kitkat, powiedział, że nic się nie zmieni dla aplikacji używających tylko SMS_RECEIVED i nie próbuj pisać SMS-a do dostawcy SMS.

1 Zawsze wierzyłem, że transmisja SMS_RECEIVED jest niemożliwa. AleStrona z Androidem 4.4 API mówi coś innego: „… kiedy pojawia się nowa wiadomość SMS, słuchając transmisji SMS_RECEIVED_ACTION, która jestnie do zniesienia nadawanie…"

questionAnswers(5)

yourAnswerToTheQuestion