Thông báo trong Android 13 sử dụng mô hình chọn tham gia, tức là là sự thay đổi so với các phiên bản Android trước (sử dụng mô hình chọn không tham gia). Ngang bằng Trên Android 13, mọi ứng dụng đều phải xin người dùng cấp quyền trước gửi thông báo nhắc nhở. Mô hình này giúp giảm thông báo gián đoạn, giảm thiểu tình trạng quá tải thông tin và giúp người dùng kiểm soát được thông báo sẽ xuất hiện dựa trên thông tin quan trọng đối với họ. Để hỗ trợ mô hình chọn tham gia, OEM phải triển khai các thay đổi trong thông báo và thời gian chạy hệ thống quyền.
Trang này mô tả những điều mà OEM (Nhà sản xuất thiết bị gốc) phải triển khai để hỗ trợ thay đổi này cũng như cách thức để xác thực việc triển khai.
Triển khai các thay đổi đối với thông báo chọn nhận
Kể từ Android 13, các ứng dụng phải khai báo
gửi thông báo bằng cách yêu cầu
android.permission.POST_NOTIFICATION
quyền khi bắt đầu chạy từ hệ thống trước khi chúng có thể gửi thông báo.
Trong Android 13 trở lên, chế độ cài đặt xác định liệu một ứng dụng có thể gửi thông báo cho người dùng có được lưu trữ trong hệ thống cấp quyền hay không. Trước Android 13, chế độ cài đặt này được lưu trữ trong hệ thống thông báo. Do đó, OEM phải di chuyển dữ liệu thông báo hiện có về việc ứng dụng có được phép gửi thông báo hay không, từ thông báo hệ thống vào hệ thống quyền khi bắt đầu chạy. OEM cũng phải duy trì các API hiện có trong hệ thống thông báo để hiển thị dữ liệu đó cho nhà phát triển ứng dụng.
Các thay đổi đối với hệ thống thông báo và quyền dựa trên mô hình chọn tham gia hành vi thông báo của người dùng và được mô tả trong phần Nguyên tắc triển khai.
Hành vi của thông báo cho người dùng trong mô hình chọn nhận thông báo
Bảng sau đây minh hoạ hành vi thông báo cho nhiều ứng dụng các phiên bản trên thiết bị chạy Android 13:
Thiết bị chạy Android 13 | Ứng dụng nhắm đến Android 13 trở lên | Ứng dụng nhắm đến phiên bản Android 13 trở xuống |
---|---|---|
Mới cài đặt | Thông báo sẽ bị chặn cho đến khi ứng dụng nhắc.
Các ứng dụng kiểm soát thời điểm cần yêu cầu cấp quyền. |
Thông báo sẽ bị chặn cho đến khi hệ điều hành nhắc.
Hệ thống sẽ yêu cầu cấp quyền trong lần chạy đầu tiên của ứng dụng. |
Ứng dụng hiện có (bản nâng cấp) | Cho phép thông báo cho đến khi ứng dụng nhắc.
Quyền tạm thời được cấp cho đến khi ứng dụng yêu cầu trong lần chạy đủ điều kiện đầu tiên. |
Cho phép thông báo cho đến khi hệ điều hành nhắc.
Quyền tạm thời sẽ được cấp cho đến lần chạy ứng dụng đầu tiên. |
Nguyên tắc triển khai
Để triển khai tham chiếu, hãy tham khảo dịch vụ thông báo, dịch vụ cấp quyền và dịch vụ chính sách. Để triển khai ngoại lệ để xem trình xử lý quyền mặc định, hãy xem Quyền khi bắt đầu chạy.
Trong quá trình triển khai, hãy làm theo các nguyên tắc sau về thông báo cho người dùng hành vi đối với ứng dụng nhắm đến SDK Android 13 trở xuống:
- Các ứng dụng mới cài đặt trên thiết bị chạy Android 13 phải
không gửi thông báo khi người dùng chưa phê duyệt lời nhắc cấp quyền.
- Nếu ứng dụng nhắm đến phiên bản Android 13 và cao hơn thì thông báo phải bị chặn cho đến khi được ứng dụng nhắc dưới dạng ứng dụng kiểm soát thời điểm và trường hợp cần yêu cầu người dùng cho phép.
- Nếu ứng dụng nhắm đến phiên bản thấp hơn Trên Android 13, bạn phải chặn thông báo cho đến được nhắc bởi hệ điều hành. Hệ điều hành phải hiển thị lời nhắc cấp quyền trong lần chạy đầu tiên của ứng dụng.
Bất kỳ ứng dụng nào đã tồn tại trên thiết bị trước khi nâng cấp Android 13 hoặc bất kỳ ứng dụng nào được khôi phục bằng tính năng sao lưu và khôi phục, phải được phép gửi thông báo cho đến lần đầu tiên người dùng khởi chạy một hoạt động từ ứng dụng đó.
Đối với ứng dụng nhắm đến SDK phiên bản Android 13 hoặc cao hơn, nếu trước đó người dùng chưa tuỳ chỉnh chế độ cài đặt thông báo cho ứng dụng này ở cấp ứng dụng hoặc cấp
NotificationChannel
, hãy thu hồi quyền. Sau đó, ứng dụng phải yêu cầu người dùng cấp quyền trước khi được được phép tiếp tục gửi thông báo.Nếu một ứng dụng đã nâng cấp nhắm đến Android 13 không hiện có quyền gửi thông báo thông qua quá trình nâng cấp tạm thời và người dùng đã chạy ứng dụng đó ít nhất một lần, thì ứng dụng phải hiển thị thông báo nhắc cấp quyền trước khi ứng dụng được phép chạy bất kỳ nền trước nào nữa luôn miễn phí.
Đối với ứng dụng có SDK mục tiêu của phiên bản thấp hơn Android 13 chặn lần chạy hoạt động đầu tiên sau khi ứng dụng tạo ít nhất một
NotificationChannel
hiển thị lời nhắc cấp quyền hỏi xem người dùng có muốn nhận thông báo hay không khỏi ứng dụng.Nếu trước đó người dùng đã tuỳ chỉnh chế độ cài đặt thông báo ở hoặc cấp
NotificationChannel
cho một ứng dụng trên thiết bị nâng cấp hoặc trong một bản sao lưu đang được khôi phục vào thiết bị, thì bạn phải chuyển chế độ cài đặt cấp ứng dụng vào hệ thống quyền bằng cờFLAG_PERMISSION_USER_SET
. Không cần làm gì thêm người dùng phải nhìn thấy lời nhắc cấp quyền gửi thông báo trừ phi ứng dụng đặt ra mục tiêu cụ thể.
Hoạt động sao lưu và khôi phục phải có khả năng tương thích ngược và chuyển tiếp giữa một Thiết bị chạy Android 13 và một thiết bị thuộc hệ điều hành cũ hơn . Dữ liệu sao lưu được tạo qua Android 13 thiết bị phải khôi phục về phiên bản hệ điều hành cũ hơn và sao lưu dữ liệu từ Phiên bản hệ điều hành phải khôi phục trên thiết bị chạy Android 13.
Các thông báo về nội dung nghe nhìn liên kết với quá trình phát nội dung nghe nhìn đang diễn ra phải được miễn trừ quyền gửi thông báo.
Xác thực các thay đổi đối với hệ thống thông báo và quyền
Để xác thực quá trình triển khai, hãy chạy các kiểm thử sau:
Phương thức kiểm thử đơn vị như chỉ định trong
PreferencesHelperTest
,NotificationManagerServiceTest
.Mọi quy trình kiểm thử thủ công để kiểm tra việc nâng cấp, sao lưu và khôi phục.
Mọi bài kiểm tra hệ thống Thông báo và Quyền CTS gửi thông báo. Một số kiểm thử này nằm trong cts/tests/tests/permission/, NotificationManagerTest.java, và cts/tests/tests/notificationlegacy/.