Quyền thông báo cho thông báo chọn tham gia

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

Trang này mô tả những gì OEM phải triển khai để hỗ trợ thay đổi này và cách xác thực việc triển khai.

Thực hiện các thay đổi cho thông báo chọn tham gia

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 thời gian 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, cài đặt xác định xem một ứ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, 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 ứ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 cấp phép 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 các 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 của 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 người dùng trong mô hình chọn tham gia

Bảng sau đây minh họa hành vi thông báo cho các phiên bản ứng dụng khác nhau trên thiết bị chạy Android 13:

Thiết bị trên Android 13 Ứng dụng nhắm mục tiêu Android 13 trở lên Ứng dụng nhắm mục tiêu các phiên bản thấp hơn Android 13
cài đặt mới Thông báo bị chặn cho đến khi được ứng dụng nhắc.

Ứng dụng kiểm soát thời điểm xin phép.

Thông báo bị chặn cho đến khi được hệ điều hành nhắc nhở.

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) Thông báo được cho phép cho đến khi ứng dụng nhắc nhở.

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 được hệ điều hành nhắc nhở.

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 thực hiện

Để triển khai tham khảo, hãy tham khảo dịch vụ thông báo , dịch vụ cấp phépdịch vụ chính sách . Để triển khai các ngoại lệ cho trình xử lý quyền mặc định, hãy xem Quyền trong thời gian chạy .

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

    • Đối với các ứng dụng có SDK mục tiêu 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 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 từ ứng dụng hay không.

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

  • Sao lưu và khôi phục phải tương thích ngược và xuôi giữa thiết bị Android 13 và thiết bị từ phiên bản HĐH 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 phiên bản HĐH cũ hơn và dữ liệu sao lưu từ phiên bản HĐH cũ hơn phải khôi phục trên thiết bị Android 13.

  • Thông báo phương tiện liên quan đến phát lại phương tiện đang diễn ra phải được miễn quyền 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 thử nghiệm sau: