- składnia:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- zawiera się w:
<application>- może zawierać:
<intent-filter><meta-data><property>- opis:
- Deklaruje odbiornik transmisji, podklasę
BroadcastReceiver, jako jeden z komponentów aplikacji. Odbiorniki transmisji umożliwiają aplikacjom odbieranie intencji, które są transmitowane przez system lub inne aplikacje, nawet gdy inne komponenty aplikacji nie działają.Istnieją 2 sposoby, aby odbiornik transmisji był znany systemowi. Pierwszy to zadeklarowanie go w pliku manifestu za pomocą tego elementu. Drugi to dynamiczne utworzenie odbiornika w kodzie i zarejestrowanie go za pomocą metody
Context.registerReceiver()lub jednej z jej przeciążonych wersji.Więcej informacji o dynamicznym tworzeniu odbiorników znajdziesz w opisie klasy
BroadcastReceiver.Jeśli ten odbiornik obsługuje transmisje inne niż systemowe, określ wartość atrybutu
android:exported. Ustaw tę wartość na"true", jeśli chcesz, aby odbiornik mógł odbierać transmisje z innych aplikacji, lub na"false", jeśli chcesz, aby odbiornik mógł odbierać transmisje tylko z Twojej aplikacji.Jeśli atrybut
android:permissionzostał już zadeklarowany, nie musisz go usuwać.Ostrzeżenie: ogranicz liczbę odbiorników transmisji ustawionych w aplikacji. Zbyt duża liczba odbiorników transmisji może wpłynąć na wydajność aplikacji i czas pracy baterii urządzeń użytkowników. Więcej informacji o interfejsach API, których możesz używać zamiast klasy
BroadcastReceiverdo planowania pracy w tle, znajdziesz w artykule Optymalizacja działania w tle. - atrybuty:
android:directBootAwareOkreśla, czy odbiornik transmisji jest świadomy bezpośredniego uruchamiania, to znaczy, czy może działać, zanim użytkownik odblokuje urządzenie.
Uwaga: Podczas bezpośredniego uruchamiania odbiornik transmisji w aplikacji może uzyskiwać dostęp tylko do danych przechowywanych w pamięci chronionej urządzenia.
Wartością domyślną jest
"false".android:enabled- Określa, czy system może utworzyć instancję odbiornika transmisji. Wartość
"true"oznacza, że może, a"false"– że nie może. Wartością domyślną jest"true".Element
<application>ma własnyenabledatrybut, który dotyczy wszystkich komponentów aplikacji, w tym odbiorników transmisji. Aby odbiornik transmisji był włączony, atrybuty<application>i<receiver>muszą mieć wartość"true". Jeśli którykolwiek z nich ma wartość"false", odbiornik jest wyłączony i nie można utworzyć jego instancji. android:exported- Określa, czy odbiornik transmisji może odbierać wiadomości ze źródeł innych niż systemowe spoza aplikacji. Wartość
"true"oznacza, że może, a"false"– że nie może. Jeśli wartość to"false", odbiornik transmisji odbiera tylko wiadomości wysyłane przez system, komponenty tej samej aplikacji lub aplikacje o tym samym identyfikatorze użytkownika.Jeśli nie określono wartości, wartość domyślna zależy od tego, czy odbiornik transmisji zawiera filtry intencji. Jeśli odbiornik zawiera co najmniej 1 filtr intencji, wartością domyślną jest
"true". W przeciwnym razie wartością domyślną jest"false".Ten atrybut nie jest jedynym sposobem na ograniczenie zewnętrznego dostępu do odbiornika transmisji. Możesz też użyć uprawnienia, aby ograniczyć zewnętrzne podmioty, które mogą wysyłać do niego wiadomości. Zobacz atrybut
permission. android:icon- Ikona reprezentująca odbiornik transmisji. Ten atrybut jest ustawiany jako odniesienie do zasobu rysowalnego zawierającego definicję obrazu.
Jeśli nie jest ustawiony, używana jest ikona określona dla całej aplikacji. Zobacz atrybut
iconelementu<application>.Ikona odbiornika transmisji, niezależnie od tego, czy jest ustawiona tutaj, czy przez element
<application>, jest też domyślną ikoną wszystkich filtrów intencji odbiornika. Zobacz atrybuticonelementu<intent-filter>. android:intentMatchingFlags-
Użyj tego atrybutu, aby dostosować sposób, w jaki system dopasowuje przychodzące intencje do komponentów aplikacji. Domyślnie nie są stosowane żadne specjalne reguły dopasowywania.
Wartość ustawiona w tagu
<receiver>zastępuje wartość ustawioną w tagu<application>.Wartość musi być jedną lub kilkoma z tych flag rozdzielonych znakiem „
|”:Flaga Opis noneWyłącza wszystkie specjalne reguły dopasowywania przychodzących intencji. Jeśli określisz kilka flag, sprzeczne wartości zostaną rozwiązane przez nadanie priorytetu fladze none.enforceIntentFilterWymusza bardziej rygorystyczne dopasowywanie przychodzących intencji:
- Jawne intencje muszą pasować do filtra intencji komponentu docelowego.
- Intencje bez działania nie pasują do żadnego filtra intencji.
allowNullActionZmiękcza reguły dopasowywania, aby umożliwić dopasowywanie intencji bez działania. Ta flaga jest używana w połączeniu z
enforceIntentFilter, aby uzyskać to działanie:- Jawne intencje muszą pasować do filtra intencji komponentu docelowego.
- Intencje bez działania mogą pasować do dowolnego filtra intencji.
Więcej informacji znajdziesz w sekcji Bezpieczniejsze intencje w artykule Zmiany w działaniu aplikacji na Androida 16 (poziom API 36).
android:label- Etykieta odbiornika transmisji czytelna dla użytkownika. Jeśli ten atrybut nie jest ustawiony, używana jest etykieta ustawiona dla całej aplikacji. Zobacz atrybut
labelelementu<application>.Etykieta odbiornika transmisji, niezależnie od tego, czy jest ustawiona tutaj, czy przez element
<application>, jest też domyślną etykietą wszystkich filtrów intencji odbiornika. Zobacz atrybutlabelelementu<intent-filter>.Etykieta jest ustawiana jako odniesienie do zasobu ciągu znaków, dzięki czemu można ją zlokalizować tak jak inne ciągi znaków w interfejsie użytkownika. Podczas tworzenia aplikacji można ją jednak ustawić jako surowy ciąg znaków.
android:name- Nazwa klasy, która implementuje odbiornik transmisji, podklasa
BroadcastReceiver. Jest to pełna nazwa klasy, np."com.example.project.ReportReceiver". Jeśli jednak, jako skrót, jeśli pierwszy znak nazwy to kropka, np.".ReportReceiver", jest ona dołączana do nazwy pakietu określonej w elemencie<manifest>.Po opublikowaniu aplikacji nie zmieniaj tej nazwy, chyba że ustawisz
android:exported="false".Nie ma wartości domyślnej. Należy podać nazwę.
android:permission- Nazwa uprawnienia, którego nadawcy potrzebują, aby wysłać wiadomość do odbiornika transmisji.
Jeśli ten atrybut nie jest ustawiony, do odbiornika transmisji stosowane jest uprawnienie ustawione przez
<application>elementupermissionatrybutu stosuje się Jeśli żaden z tych atrybutów nie jest ustawiony, odbiornik nie jest chroniony przez uprawnienie.Więcej informacji o uprawnieniach znajdziesz w sekcji Uprawnienia w artykule Omówienie manifestu aplikacji oraz w artykule Wskazówki dotyczące bezpieczeństwa.
android:processNazwa procesu, w którym działa odbiornik transmisji. Zwykle wszystkie komponenty aplikacji działają w domyślnym procesie utworzonym dla aplikacji. Ma on taką samą nazwę jak pakiet aplikacji.
Atrybut elementu
<application>może ustawić inną wartość domyślną dla wszystkich komponentów.processKażdy komponent może jednak zastąpić wartość domyślną własnym atrybutemprocess, co pozwala rozdzielić aplikację na kilka procesów.Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (
:), w razie potrzeby tworzony jest nowy proces prywatny dla aplikacji, a odbiornik transmisji działa w tym procesie.Jeśli nazwa procesu zaczyna się małą literą, odbiornik działa w globalnym procesie o tej nazwie, pod warunkiem że ma do tego uprawnienia. Dzięki temu komponenty w różnych aplikacjach mogą współdzielić proces, co zmniejsza zużycie zasobów.
- wprowadzono w:
- poziom API 1
<Odbiorca>
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2026-07-03 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2026-07-03 UTC."],[],[]]