Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
cú pháp:
<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>
có trong:
<application>
có thể chứa:
<intent-filter>
<meta-data>
nội dung mô tả:
Khai báo một broadcast receiver (lớp con của BroadcastReceiver) làm một trong các thành phần của ứng dụng. Broadcast receiver cho phép ứng dụng nhận được ý định mà hệ thống hoặc ứng dụng khác truyền đi, ngay cả khi các thành phần khác của ứng dụng không chạy.

Có hai cách để cho hệ thống biết về broadcast receiver: Một là khai báo phần tử này trong tệp kê khai. Hai là tạo receiver động ở dạng mã và đăng ký bằng phương thức Context.registerReceiver(). Bạn cũng có thể sử dụng các phiên bản quá tải của tin do hệ thống truyền ra: (receiver, bộ lọc) hoặc tin do ứng dụng truyền ra: (broadcast receiver, bộ lọc, cờ). Để biết thêm thông tin về cách tạo receiver động, hãy xem phần mô tả lớp BroadcastReceiver.

Nếu receiver này xử lý các tin không phải do hệ thống truyền ra, hãy chỉ định một giá trị cho android:exported. Đặt giá trị này thành true nếu bạn muốn receiver nhận tin từ các ứng dụng khác hoặc false nếu bạn chỉ muốn receiver nhận tin từ chính ứng dụng của bạn.

Bạn không cần xoá thuộc tính android:permission nếu đã khai báo thuộc tính này.

Cảnh báo: Hãy giới hạn số lượng broadcast receiver bạn đặt trong ứng dụng. Việc có quá nhiều broadcast receiver có thể ảnh hưởng đến hiệu suất của ứng dụng cũng như thời lượng pin của thiết bị của người dùng. Để biết thêm thông tin về API mà bạn có thể sử dụng thay cho lớp BroadcastReceiver nhằm lập lịch biểu công việc trên nền, hãy xem phần Tối ưu hoá nền.

thuộc tính:
android:directBootAware

Broadcast receiver có nhận biết việc khởi động trực tiếp hay không; nghĩa là, broadcast receiver có thể chạy trước khi người dùng mở khoá thiết bị hay không.

Lưu ý: Trong phương thức Direct Boot (Khởi động trực tiếp), broadcast receiver trong ứng dụng của bạn chỉ có thể truy cập dữ liệu được lưu trữ trong bộ nhớ được bảo vệ của thiết bị.

Giá trị mặc định là "false".

android:enabled
Hệ thống có thể bắt đầu tạo bản sao của broadcast receiver hay không: "true" nếu là có và "false" nếu là không. Giá trị mặc định là "true".

Phần tử <application> có thuộc tính enabled riêng áp dụng cho tất cả thành phần của ứng dụng, bao gồm cả broadcast receiver. Cả hai thuộc tính <application><receiver> phải là "true" thì mới có thể bật broadcast receiver. Nếu một trong hai thuộc tính là "false", thì broadcast receiver đó sẽ bị tắt và không thể tạo bản sao.

android:exported
Broadcast receiver có thể nhận thông báo từ nguồn không phải hệ thống bên ngoài ứng dụng hay không: "true" nếu là có và "false" nếu là không. Nếu là "false" thì tin duy nhất mà broadcast receiver có thể nhận được là tin do hệ thống, các thành phần của cùng ứng dụng hoặc ứng dụng có cùng mã nhận dạng người dùng gửi tới.

Nếu không chỉ định thì giá trị mặc định sẽ tuỳ thuộc vào việc broadcast receiver có chứa bộ lọc ý định hay không. Nếu receiver có chứa ít nhất một bộ lọc ý định, thì giá trị mặc định sẽ là "true". Nếu không, giá trị mặc định sẽ là "false".

Thuộc tính này không phải là cách duy nhất để hạn chế việc tiếp xúc bên ngoài của broadcast receiver. Bạn cũng có thể sử dụng quyền để giới hạn các thực thể bên ngoài nào có quyền gửi thông báo cho broadcast receiver (xem thuộc tính permission).

android:icon
Biểu tượng đại diện cho broadcast receiver. Thuộc tính này phải được thiết lập dưới dạng tham chiếu đến một tài nguyên có thể vẽ trong đó có chứa phần định nghĩa cho hình ảnh. Nếu bạn không đặt chính sách này, hệ thống sẽ sử dụng biểu tượng đã chỉ định cho toàn bộ ứng dụng (xem thuộc tính icon của phần tử <application>).

Biểu tượng của broadcast receiver – bất kể được đặt ở đây hay do phần tử <application> đặt – cũng đều là biểu tượng mặc định cho tất cả các bộ lọc ý định của receiver (xem thuộc tính icon của phần tử <intent-filter>).

android:label
Nhãn mà người dùng đọc được cho broadcast receiver. Nếu bạn không đặt thuộc tính này, thì nhãn được đặt cho toàn bộ ứng dụng sẽ được sử dụng (xem thuộc tính label của phần tử <application>).

Nhãn của broadcast receiver – bất kể được đặt ở đây hay do phần tử <application> đặt – cũng đều là nhãn mặc định cho tất cả các bộ lọc ý định của receiver (xem thuộc tính label của phần tử <intent-filter>).

Bạn phải đặt nhãn dưới dạng thông tin tham chiếu đến tài nguyên chuỗi thì mới có thể bản địa hoá nhãn như các chuỗi khác trong giao diện người dùng. Tuy nhiên, để thuận tiện cho bạn trong quá trình phát triển ứng dụng, bạn cũng có thể đặt nhãn dưới dạng một chuỗi thô (raw string).

android:name
Tên của lớp triển khai broadcast receiver, lớp con của BroadcastReceiver. Đây phải là tên lớp đủ điều kiện (ví dụ: "com.example.project.ReportReceiver"). Tuy nhiên, do là tên viết tắt nên nếu ký tự đầu tiên của tên lớp là dấu chấm (ví dụ: ". ReportReceiver"), thì tên này được thêm vào tên gói được chỉ định trong phần tử <manifest>.

Sau khi phát hành ứng dụng, bạn không nên thay đổi tên này (trừ trường hợp bạn đã đặt android:exported="false").

Không có giá trị mặc định. Bạn phải chỉ định tên.

android:permission
Tên của quyền mà trình phát phải gửi thông báo đến broadcast receiver. Nếu bạn không đặt thuộc tính này thì quyền do thuộc tính permission của phần tử <application> đặt sẽ áp dụng cho broadcast receiver. Nếu bạn không đặt thuộc tính nào thì receiver sẽ không được quyền bảo vệ.

Để biết thêm thông tin về các quyền, hãy xem mục Quyền trong phần giới thiệu cũng như xem tài liệu riêng về Bảo mật và quyền.

android:process
Tên của quy trình mà broadcast receiver sẽ chạy. Thường thì tất cả thành phần của ứng dụng sẽ chạy trong quy trình mặc định được tạo cho ứng dụng. Quy trình này có cùng tên với gói ứng dụng. Thuộc tính process của phần tử <application> có thể đặt một giá trị mặc định khác cho tất cả thành phần. Tuy nhiên, mỗi thành phần có thể ghi đè giá trị mặc định bằng thuộc tính process riêng, cho phép bạn trải rộng ứng dụng của mình trên nhiều quy trình.

Nếu tên được gán cho thuộc tính này bắt đầu bằng dấu hai chấm (":"), thì quy trình mới, dành riêng cho ứng dụng, sẽ được tạo khi cần và broadcast receiver sẽ chạy trong quy trình đó. Nếu tên quy trình bắt đầu bằng ký tự viết thường, thì receiver sẽ chạy trong quy trình chung có tên đó, miễn là receiver có quyền làm như vậy. Điều này cho phép các thành phần trong nhiều ứng dụng dùng chung cùng một quy trình, giúp giảm lượng sử dụng tài nguyên.

lần đầu xuất hiện:
API Cấp 1