- składnia:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- zawarte w:
<application>
- mogą zawierać:
<intent-filter>
<meta-data>
- description:
- Deklaruje odbiornik (
BroadcastReceiver
) podklasa jako jeden z komponentów aplikacji. Odbiorniki transmisji są włączone aplikacji odbierających intencje, które są transmitowane przez system lub przez inne nawet jeśli inne komponenty aplikacji nie są uruchomione.Są 2 sposoby poinformowanie systemu o odbiorniku. Po pierwsze: zadeklarować ją w pliku manifestu za pomocą tego elementu. Drugi to utworzenie do odbiornika w kodzie i rejestrować go za pomocą funkcji
Context.registerReceiver()
lub jedną z jej przeciążonych wersji.Więcej informacji o dynamicznym tworzeniu odbiorników znajdziesz w
BroadcastReceiver
zajęcia opis.Jeśli ten odbiornik obsługuje komunikaty spoza systemu, podaj wartość
android:exported
. Ustaw tę wartość na"true"
, jeśli chcesz, aby odbiornik mógł: odbiera komunikaty z innych aplikacji lub"false"
, jeśli tylko chcesz, aby odbiornik mógł odbierać komunikaty z Twojej własnej aplikacji.Nie musisz usuwać atrybutu
android:permission
, jeśli: została już przez Ciebie zadeklarowana.Ostrzeżenie: ogranicz liczbę transmisji odbiornikach ustawionych w aplikacji. Zbyt wiele odbiorników wpływają na wydajność aplikacji i żywotność baterii urządzenia. Aby uzyskać więcej informacji o interfejsach API, których możesz używać zamiast
BroadcastReceiver
zajęcia do planowania pracy w tle, zobacz Optymalizacja tła. - atrybuty:
android:directBootAware
Określa, czy odbiornik jest rozpoznany podczas rozruchu bezpośredniego, Dotyczy to tego, czy może ona zostać uruchomiona, zanim użytkownik odblokuje urządzenie.
Uwaga: w trakcie Bezpośredni rozruch, komunikat odbiornik w aplikacji ma dostęp wyłącznie do danych przechowywanych w pamięć chroniona na urządzeniu.
Wartość domyślna to
"false"
.android:enabled
- Określ, czy system może utworzyć wystąpienie odbiornika. Jest
"true"
, jeśli może być, lub"false"
, jeśli może być. Wartość domyślna jest"true"
.Element
<application>
ma swój własny element Atrybutenabled
, który ma zastosowanie do wszystkich i komponenty aplikacji, w tym odbiorniki.<application>
i Oba atrybuty<receiver>
muszą mieć wartość"true"
w przypadku wybierz odbiornik. Jeśli jeden z tych argumentów to"false"
, jest on wyłączona i nie można jej utworzyć. android:exported
- Określenie, czy odbiornik może odbierać wiadomości ze źródeł innych niż systemowe
poza jej zastosowaniem. W miarę możliwości jest to
"true"
, oraz"false"
jeśli nie. Jeśli"false"
, jedyne wiadomości odbiornika to te wysyłane przez system, składniki tej samej aplikacji o tym samym identyfikatorze użytkownika.Jeśli wartość domyślna nie została określona, zależy od tego, czy odbiornik zawiera intencję filtry. Jeśli odbiorca zawiera co najmniej 1 filtr intencji, wartość domyślna to
"true"
W przeciwnym razie domyślna wartość to"false"
.Ten atrybut nie jest jedynym sposobem ograniczenia zewnętrznej ekspozycji odbiornika. Możesz też użyć uprawnień, aby ograniczyć zewnętrzne podmioty, które mogą wysyłać do niego wiadomości. Zobacz atrybut
permission
. android:icon
- Ikona odbiornika. Ten atrybut jest ustawiony
jako odwołanie do zasobu rysowalnego zawierającego definicję obrazu.
Jeśli nie jest ustawiona, używana jest ikona określona dla całej aplikacji
. Zobacz
<application>
icon
tego elementu.Ikona odbiornika, ustawiona tutaj lub przez
<application>
, jest również domyślna ikona wszystkich filtrów intencji odbiorcy. Zobacz Element<intent-filter>
icon
. android:label
- Czytelna dla użytkownika etykieta odbiornika. Jeśli ten atrybut nie jest
etykietą ustawioną dla całej aplikacji jest
. Zobacz właściwości elementu
<application>
label
.Etykieta odbiornika, określona tutaj lub przez
<application>
, jest również etykieta domyślna wszystkich filtrów intencji odbiorcy. Zobacz Element<intent-filter>
label
.Etykieta jest ustawiona jako odniesienie do zasobu ciągu, więc i można go zlokalizować tak samo jak inne ciągi w interfejsie. Aby jednak zapewnić wygodę na etapie tworzenia aplikacji, można go też ustawić w postaci nieprzetworzonego ciągu znaków.
android:name
- Nazwa klasy, która implementuje odbiornik (podklasa)
BroadcastReceiver
To jest w pełni kwalifikowany nazwę klasy, na przykład"com.example.project.ReportReceiver"
. Pamiętaj jednak: jako skrótu, jeśli pierwszym znakiem nazwy jest kropka, np.".ReportReceiver"
, jest dołączony do nazwy pakietu określonej w polu element<manifest>
.Po opublikowaniu aplikacji nie zmień tę nazwę, chyba że ustawisz
android:exported="false"
.Nie ma wartości domyślnej. Musisz podać nazwę.
android:permission
- Nazwa uprawnienia, którego nadawcy potrzebują, aby wysłać
do odbiornika.
Jeśli ten atrybut nie jest skonfigurowany, uprawnienia określone przez
Element
<application>
Stosowany jest atrybutpermission
do odbiornika. Jeśli żaden z tych atrybutów nie jest ustawiony, odbiorca nie jest chronione uprawnieniami.Więcej informacji o uprawnieniach: Uprawnienia w omówieniu pliku manifestu aplikacji oraz Wskazówki dotyczące bezpieczeństwa
android:process
- Nazwa procesu, w którym działa odbiornik.
Normalnie wszystkie komponenty aplikacji są uruchamiane w procesie domyślnym
dla danej aplikacji. Ma taką samą nazwę jak pakiet aplikacji.
Element
<application>
Atrybutprocess
może ustawiać inne wartości domyślny dla wszystkich komponentów. Każdy komponent może jednak zastąpić komponent domyślny z własnym atrybutemprocess
, który umożliwia rozpowszechnianie do zastosowania w wielu procesach.Jeśli nazwa przypisana do tego atrybutu zaczyna się od dwukropka (
:
), nowy atrybut prywatny do aplikacji i tworzony, gdy jest potrzebny, działa w nim odbiornik.Jeśli nazwa procesu zaczyna się od małej litery, odbiorca działa w globalnym procesie dotyczącym tej nazwy, o ile ma do tego uprawnienia. Umożliwia to komponentom w różnych aplikacjach współużytkowanie procesu, co zmniejsza wykorzystanie zasobów.
- wprowadzone w:
- Poziom API 1
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: 2024-08-22 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Brak potrzebnych mi informacji"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zbyt skomplikowane / zbyt wiele czynności do wykonania"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nieaktualne treści"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem z tłumaczeniem"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem z przykładami/kodem"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Inne"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Łatwo zrozumieć"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Rozwiązało to mój problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Inne"
}]
{"lastModified": "Ostatnia aktualizacja: 2024-08-22 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: 2024-08-22 UTC."]]