Quyền gửi thông báo cho thông báo chọn sử dụng

Thông báo trong Android 13 sử dụng mô hình chọn nhận. Đây là một thay đổi so với các phiên bản Android trước đây sử dụng mô hình chọn không nhận. Trong Android 13, tất cả ứng dụng đều phải yêu cầu người dùng cấp quyền trước khi gửi lời nhắc thông báo. Mô hình này giúp giảm sự gián đoạn do thông báo, 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 những thông báo xuất hiện dựa trên những gì quan trọng với họ. Để hỗ trợ mô hình chọn nhận, các OEM phải triển khai các thay đổi trong hệ thống thông báo và quyền trong thời gian chạy.

Trang này mô tả những gì mà các OEM phải triển khai để hỗ trợ thay đổi này và cách 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 ý định gửi thông báo bằng cách yêu cầu quyền lúc bắt đầu chạy android.permission.POST_NOTIFICATION từ hệ thống trước khi có thể gửi thông báo.

Trong Android 13 trở lên, chế độ cài đặt xác định xem ứng dụng có thể gửi thông báo cho người dùng hay không được lưu trữ trong hệ thống quyền. Trước Android 13, chế độ cài đặt này được lưu trữ trong hệ thống thông báo. Do đó, các OEM phải di chuyển dữ liệu thông báo hiện có về việc một ứng dụng có được phép gửi thông báo hay không, từ hệ thống thông báo sang hệ thống quyền trong thời gian chạy. Các 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 nhận thông báo về hành vi 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 người dùng trong mô hình chọn sử dụng

Bảng sau đây minh hoạ hành vi thông báo đối với nhiều phiên bản ứng dụng trên một 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 các phiên bản thấp hơn Android 13
Lượt cài đặt mới Thông báo sẽ bị chặn cho đến khi ứng dụng nhắc bạn.

Các ứng dụng kiểm soát thời điểm 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 bạn.

Quyền được yêu cầu trong lần chạy đầu tiên của ứng dụng.

Ứng dụng hiện có (nâng cấp) Bạn có thể nhận thông báo cho đến khi ứng dụng nhắc bạn.

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.

Thông báo được cho phép cho đến khi hệ điều hành nhắc bạn.

Quyền tạm thời được cấp cho đến lần chạy đầu tiên của ứng dụng.

Hướng dẫn triển khai

Để biết thông tin về cách triển khai tham chiếu, hãy tham khảo dịch vụ thông báo, dịch vụ cấp quyềndịch vụ chính sách. Để triển khai các trường hợp ngoại lệ cho trình xử lý quyền mặc định, hãy xem phần Quyền khi bắt đầu chạy.

Trong quá trình triển khai, hãy tuân thủ các nguyên tắc sau về hành vi thông báo cho người dùng đối với các ứ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ị Android 13 không được gửi thông báo nếu 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 Android 13 trở lên, thì thông báo phải bị chặn cho đến khi ứng dụng nhắc nhở vì ứng dụng kiểm soát thời điểm và việc có yêu cầu người dùng cấp quyền hay không.
    • Nếu ứng dụng nhắm đến các phiên bản thấp hơn Android 13, thì thông báo phải bị chặn cho đến khi hệ điều hành nhắc nhở. Hệ điều hành phải cho thấy lời nhắc cấp quyền vào lần đầu tiên chạy ứng dụng.
  • Mọi ứng dụng đã có trên thiết bị trước khi nâng cấp lên Android 13 hoặc mọi ứng dụng được khôi phục thông qua tính năng sao lưu và khôi phục đều 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 các ứng dụng nhắm đến SDK của Android 13 trở lên, nếu 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 tạm thời đã cấp. Sau đó, ứng dụng phải xin phép người dùng trước khi đượ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 hiện không có quyền gửi thông báo thông qua chế độ cấp quyền nâng cấp tạm thời và người dùng đã khởi chạy ứng dụng ít nhất một lần, thì ứng dụng phải cho thấy lời nhắc cấp quyền gửi thông báo trước khi được phép chạy bất kỳ dịch vụ nào khác trên nền trước.

    • Đối với các ứng dụng có SDK mục tiêu là các phiên bản thấp hơn Android 13, hãy chặn lần khởi chạy hoạt động đầu tiên sau khi ứng dụng đã tạo ít nhất một NotificationChannel để hiện lời nhắc cấp quyền hỏi xem người dùng có muốn nhận thông báo từ ứng dụng hay không.

      Nếu trước đây người dùng đã tuỳ chỉnh chế độ cài đặt thông báo ở cấp ứng dụng hoặc NotificationChannel cho một ứng dụng trên thiết bị đang nâng cấp hoặc trong bản sao lưu đang được khôi phục vào thiết bị, thì chế độ cài đặt ở cấp ứng dụng phải được di chuyển vào hệ thống quyền bằng cờ FLAG_PERMISSION_USER_SET. Không được hiển thị thêm lời nhắc cấp quyền nhận thông báo cho người dùng, trừ phi ứng dụng yêu cầu cụ thể.

  • Tính năng sao lưu và khôi phục phải tương thích ngược và tương thích xuôi giữa thiết bị Android 13 và thiết bị chạy phiên bản hệ điều hành cũ hơn. Dữ liệu sao lưu được tạo từ thiết bị Android 13 phải khôi phục trên một phiên bản hệ điều hành cũ hơn và dữ liệu sao lưu từ một phiên bản hệ điều hành cũ hơn phải khôi phục trên thiết bị Android 13.

  • Thông báo về nội dung nghe nhìn liên kết với hoạt động phát nội dung nghe nhìn đang diễn ra phải được miễn quyền truy cập vào 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 việc triển khai, hãy chạy các kiểm thử sau: