2014-12-13 12 views
5

Witam Widzę, że jakiś odbiornik telewizyjny używa tego tagu android:exported="true" w Androidzie Manifest.xml do rejestracji.Jaki jest pożytek z Androida: exported = "true" w BroadcastReceiver

<receiver android:exported="true" android:name="com.flyingsoftgames.googleplayquery.QueryReceiver"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

Co dokładnie wykorzystanie android:exported="true" zarejestrować odbiornika telewizyjnego mającego na Androida?

Z góry dziękuję.

Odpowiedz

8

Z Developer Guide:

android: eksportowane , czy odbiornik telewizyjny może odbierać wiadomości ze źródeł spoza jego zastosowania - „true”, jeśli to możliwe, i „false”, jeśli nie. Jeśli „false”, tylko komunikaty nadawane odbiornik może odbierać te są wysyłane przez składniki tej samej aplikacji lub aplikacji z tego samego identyfikatora użytkownika. Wartość domyślna zależy od tego, czy odbiorca przekazu zawiera filtry intencji. Brak jakichkolwiek filtrów oznacza, że ​​można go wywoływać tylko za pomocą obiektów Intent, które określają dokładną nazwę klasy. Oznacza to, że odbiornik jest przeznaczony tylko do użytku wewnętrznego aplikacji (ponieważ inni normalnie nie znają nazwy klasy). W tym przypadku domyślną wartością jest "false". Z drugiej strony obecność co najmniej jednego filtra oznacza, że ​​odbiornik rozgłoszeniowy jest przeznaczony do odbierania intencji nadawanych przez system lub inne aplikacje, więc domyślną wartością jest "prawda".

Ten atrybut nie jest jedynym sposobem ograniczenia ekspozycji zewnętrznej odbiornika. Możesz także użyć uprawnień do ograniczenia zewnętrznych jednostek, które mogą wysyłać wiadomości (zobacz atrybut uprawnień).

4

android:exported

true: odbiornik telewizyjny może odbierać zdarzenia wysyłane przez samych lub innych zastosowań

false‍: Odbiornik radiowy może odbierać zdarzenia wysłane przez tego samego wniosku

+2

Więc jeśli chcę słuchać do zdarzeń systemowych (tj. stan włączenia/wyłączenia Bluetooth), powinienem użyć ** exported = true **? –

+0

@IgorGanapolsky W takim przypadku nie musisz używać tego atrybutu. – CopsOnRoad

Powiązane problemy