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>
chứa 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 phát, 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 broadcast receiver một cách linh động ở dạng mã và đăng ký bằng phương thức Context.registerReceiver(). Để biết thêm thông tin về cách tạo receiver một cách linh động, hãy xem phần mô tả lớp BroadcastReceiver.

Cảnh báo: 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 và 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 bạn có thể sử dụng thay cho lớp BroadcastReceiver để 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 quá trình 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 phần dung lượng lưu trữ đượ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ả cá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ì thông báo duy nhất mà broadcast receiver có thể nhận được là thông báo 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, 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 đặt làm tham chiếu đến tài nguyên có thể vẽ chứa định nghĩa hình ảnh. Nếu bạn không đặt, biểu tượng đã chỉ định cho toàn bộ ứng dụng sẽ được sử 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>).

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

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ế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 đã 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ừ khi bạn đã đặt android:exported="false").

Không có tuỳ chọn 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ề quyền, hãy xem mục Quyền trong phần giới thiệu và tài liệu riêng là 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ường, tất cả các thành phần của ứng dụng đều chạy theo quy trình mặc định đã 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 giá trị mặc định khác cho tất cả cá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 ra 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