การแจ้งเตือนใน Android 13 ใช้รูปแบบการเลือกใช้ ซึ่งเป็นการเปลี่ยนแปลงจาก Android เวอร์ชันก่อนหน้าซึ่งใช้รูปแบบการเลือกไม่ใช้ ใน Android 13 แอปทั้งหมดต้องขอสิทธิ์จากผู้ใช้ก่อนส่งข้อความแจ้งเตือน รูปแบบนี้ช่วยลดการหยุดชะงักจากการแจ้งเตือน ลดปริมาณข้อมูลที่มากเกินไป และช่วยให้ผู้ใช้ควบคุมการแจ้งเตือนที่จะปรากฏตามสิ่งที่สำคัญกับตน OEM ต้องทำการเปลี่ยนแปลงในระบบการแจ้งเตือนและสิทธิ์รันไทม์เพื่อรองรับรูปแบบการเลือกใช้
หน้านี้อธิบายสิ่งที่ OEM ต้องติดตั้งใช้งานเพื่อรองรับการเปลี่ยนแปลงนี้ และวิธีตรวจสอบการติดตั้งใช้งาน
ใช้การเปลี่ยนแปลงสำหรับการแจ้งเตือนแบบเลือกใช้
ตั้งแต่ Android 13 เป็นต้นไป แอปต้องประกาศความตั้งใจที่จะส่งการแจ้งเตือนโดยขอสิทธิ์รันไทม์ android.permission.POST_NOTIFICATION
จากระบบก่อนจึงจะส่งการแจ้งเตือนได้
ใน Android 13 ขึ้นไป ระบบจะจัดเก็บการตั้งค่าที่กำหนดว่าแอปจะส่งการแจ้งเตือนไปยังผู้ใช้ได้หรือไม่ไว้ในระบบสิทธิ์ ก่อนที่จะมี Android 13 การตั้งค่านี้จะจัดเก็บไว้ในระบบการแจ้งเตือน ดังนั้น OEM จึงต้องย้ายข้อมูลการแจ้งเตือนที่มีอยู่เกี่ยวกับแอปที่ได้รับอนุญาตให้ส่งการแจ้งเตือนหรือไม่จากระบบการแจ้งเตือนไปยังระบบสิทธิ์รันไทม์ OEM ต้องคง API ที่มีอยู่ไว้ในระบบการแจ้งเตือนที่แสดงข้อมูลดังกล่าวแก่นักพัฒนาแอป
การเปลี่ยนแปลงระบบการแจ้งเตือนและสิทธิ์จะอิงตามรูปแบบการเลือกใช้ลักษณะการแจ้งเตือนของผู้ใช้ และอธิบายไว้ในส่วนหลักเกณฑ์การใช้งาน
ลักษณะการทํางานของการแจ้งเตือนผู้ใช้ในแบบเลือกใช้
ตารางต่อไปนี้แสดงลักษณะการแจ้งเตือนสำหรับแอปเวอร์ชันต่างๆ ในอุปกรณ์ที่ใช้ Android 13
อุปกรณ์ที่ใช้ Android 13 | แอปที่กำหนดเป้าหมายเป็น Android 13 ขึ้นไป | แอปที่กำหนดเป้าหมายเป็นเวอร์ชันที่ต่ำกว่า Android 13 |
---|---|---|
การติดตั้งใหม่ | ระบบจะบล็อกการแจ้งเตือนจนกว่าแอปจะแสดงข้อความแจ้ง
แอปจะควบคุมเวลาที่จะขอสิทธิ์ |
ระบบจะบล็อกการแจ้งเตือนจนกว่าระบบปฏิบัติการจะแจ้ง
จะมีการถามสิทธิ์เมื่อเรียกใช้แอปครั้งแรก |
แอปที่มีอยู่ (อัปเกรด) | อนุญาตการแจ้งเตือนจนกว่าแอปจะแสดงข้อความแจ้ง
ระบบจะมอบสิทธิ์ชั่วคราวจนกว่าแอปจะขอสิทธิ์ในการเรียกใช้ครั้งแรก |
อนุญาตให้แสดงการแจ้งเตือนจนกว่าระบบปฏิบัติการจะแจ้ง
ระบบจะให้สิทธิ์ชั่วคราวจนกว่าจะมีการเรียกใช้แอปครั้งแรก |
หลักเกณฑ์การใช้งาน
สําหรับการใช้งานอ้างอิง โปรดดูบริการการแจ้งเตือน บริการสิทธิ์ และบริการนโยบาย หากต้องการใช้ข้อยกเว้นสำหรับตัวแฮนเดิลสิทธิ์เริ่มต้น โปรดดูสิทธิ์รันไทม์
ในระหว่างการติดตั้งใช้งาน ให้ใช้หลักเกณฑ์ต่อไปนี้เกี่ยวกับลักษณะการแจ้งเตือนผู้ใช้สำหรับแอปที่กำหนดเป้าหมายเป็น SDK ของ Android 13 หรือต่ำกว่า
- แอปที่เพิ่งติดตั้งในอุปกรณ์ Android 13 ต้องไม่ส่งการแจ้งเตือนหากผู้ใช้ไม่อนุมัติข้อความแจ้งสิทธิ์
- หากแอปกำหนดเป้าหมายเป็น Android เวอร์ชัน 13 ขึ้นไป คุณต้องบล็อกการแจ้งเตือนจนกว่าแอปจะแสดงข้อความแจ้ง เนื่องจากแอปจะเป็นผู้ควบคุมว่าจะขอสิทธิ์จากผู้ใช้หรือไม่และเมื่อใด
- หากแอปกำหนดเป้าหมายเป็นเวอร์ชันที่ต่ำกว่า Android 13 คุณต้องบล็อกการแจ้งเตือนจนกว่าระบบปฏิบัติการจะแจ้ง ระบบปฏิบัติการต้องแสดงข้อความแจ้งสิทธิ์เมื่อแอปทำงานเป็นครั้งแรก
แอปทั้งหมดที่มีอยู่ในอุปกรณ์ก่อนอัปเกรดเป็น Android 13 หรือแอปที่ได้รับการกู้คืนผ่านการสำรองข้อมูลและการกู้คืนจะต้องได้รับอนุญาตให้ส่งการแจ้งเตือนจนกว่าผู้ใช้จะเริ่มกิจกรรมจากแอปนั้นเป็นครั้งแรก
สําหรับแอปที่กำหนดเป้าหมาย SDK ของ Android เวอร์ชัน 13 ขึ้นไป หากผู้ใช้ไม่ได้ปรับแต่งการตั้งค่าการแจ้งเตือนสำหรับแอปนี้ในระดับแอปหรือ
NotificationChannel
ก่อนหน้านี้ ให้เพิกถอนการให้สิทธิ์ชั่วคราว จากนั้นแอปต้องขอสิทธิ์จากผู้ใช้ก่อน จึงจะส่งการแจ้งเตือนต่อได้หากแอปที่อัปเกรดที่กำหนดเป้าหมายเป็น Android 13 ยังไม่มีสิทธิ์การแจ้งเตือนผ่านการให้สิทธิ์การอัปเกรดชั่วคราว และผู้ใช้ได้เปิดแอปแล้วอย่างน้อย 1 ครั้ง แอปต้องแสดงข้อความแจ้งสิทธิ์การแจ้งเตือนก่อนจึงจะเรียกใช้บริการที่ทำงานอยู่เบื้องหน้าเพิ่มเติมได้
สําหรับแอปที่มี SDK เป้าหมายเวอร์ชันต่ำกว่า Android 13 ให้ขัดขวางการเริ่มกิจกรรมครั้งแรกหลังจากที่แอปสร้าง
NotificationChannel
อย่างน้อย 1 รายการเพื่อแสดงข้อความแจ้งสิทธิ์ที่ถามว่าผู้ใช้ต้องการรับการแจ้งเตือนจากแอปหรือไม่หากก่อนหน้านี้ผู้ใช้ปรับแต่งการตั้งค่าการแจ้งเตือนที่ระดับแอปหรือ
NotificationChannel
สำหรับแอปในอุปกรณ์ที่กำลังอัปเกรดหรือในข้อมูลสำรองที่กำลังกู้คืนไปยังอุปกรณ์ จะต้องมีการย้ายข้อมูลการตั้งค่าระดับแอปไปยังระบบสิทธิ์ที่มีแฟล็กFLAG_PERMISSION_USER_SET
และต้องไม่แสดงข้อความแจ้งสิทธิ์การแจ้งเตือนเพิ่มเติมต่อผู้ใช้ เว้นแต่แอปจะขอสิทธิ์ดังกล่าวโดยเฉพาะ
การสำรองและกู้คืนข้อมูลต้องมีความเข้ากันได้แบบย้อนหลังและแบบไปข้างหน้าระหว่างอุปกรณ์ Android 13 กับอุปกรณ์จากระบบปฏิบัติการเวอร์ชันก่อนหน้า ข้อมูลสำรองที่สร้างจากอุปกรณ์ Android 13 ต้องกู้คืนลงในระบบปฏิบัติการเวอร์ชันเก่า และข้อมูลสำรองจากระบบปฏิบัติการเวอร์ชันเก่าต้องกู้คืนลงในอุปกรณ์ Android 13
การแจ้งเตือนสื่อที่เชื่อมโยงกับการเล่นสื่อที่กำลังเล่นต้องได้รับการยกเว้นจากสิทธิ์การแจ้งเตือน
ตรวจสอบการเปลี่ยนแปลงของระบบการแจ้งเตือนและสิทธิ์
ในการตรวจสอบการติดตั้งใช้งาน ให้เรียกใช้การทดสอบต่อไปนี้
การทดสอบ 1 หน่วยตามที่ระบุไว้ใน
PreferencesHelperTest
NotificationManagerServiceTest
การทดสอบด้วยตนเองที่ทดสอบการอัปเกรดและการสำรองและกู้คืนข้อมูล
การทดสอบระบบสิทธิ์และการแจ้งเตือน CTS ที่ส่งการแจ้งเตือน การทดสอบเหล่านี้บางส่วนอยู่ใน cts/tests/tests/permission/, NotificationManagerTest.java และ cts/tests/tests/notificationlegacy/