สิทธิ์การแจ้งเตือนขณะทำงาน
ขอสิทธิ์การแจ้งเตือนบน Android 13 ขึ้นไป
สิทธิ์การแจ้งเตือนขณะทำงาน เป็นบทเรียน Android Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Android Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
สิทธิ์การแจ้งเตือน
ตั้งแต่ Android 13 (API 33) เป็นต้นมา แอปต้องขอ สิทธิ์ขณะทำงาน เพื่อโพสต์การแจ้งเตือน: POST_NOTIFICATIONS หากไม่มีสิทธิ์นี้ การแจ้งเตือนจะถูกบล็อกโดยไม่มีการแจ้งเตือนให้ทราบ
เหตุผลที่เพิ่มสิทธิ์นี้
ก่อน Android 13 การแจ้งเตือนเปิดใช้งานเป็นค่าเริ่มต้น และผู้ใช้ต้องเข้าไปค้นหาใน Settings เพื่อปิดเสียงแอปที่แจ้งเตือนรบกวน การใช้สิทธิ์ขณะทำงานเปลี่ยนแนวทางนี้ โดยผู้ใช้ต้องเลือกอนุญาตอย่างชัดเจน จึงช่วยลดข้อความรบกวน
ประกาศสิทธิ์ใน Manifest
ขั้นแรกให้ประกาศสิทธิ์ใน AndroidManifest.xml ซึ่งจำเป็นสำหรับทุกเวอร์ชันที่รองรับ แม้ว่ากล่องโต้ตอบจะปรากฏเฉพาะบน API 33 ขึ้นไป
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />นี่คือสิทธิ์อันตราย
POST_NOTIFICATIONS จัดเป็นสิทธิ์ขณะทำงาน (สิทธิ์อันตราย) ดังนั้นบน Android 13 ขึ้นไป คุณต้องขอสิทธิ์จากผู้ใช้และจัดการคำตอบของผู้ใช้ เช่นเดียวกับสิทธิ์กล้องหรือตำแหน่ง
พฤติกรรมตามเวอร์ชัน
ความแตกต่างระหว่างเวอร์ชันมีความสำคัญ:
- API 33 ขึ้นไป: ต้องขอสิทธิ์ขณะทำงาน หากถูกปฏิเสธจะไม่สามารถแสดงการแจ้งเตือนได้
- API 32 ลงมา: อนุญาตการแจ้งเตือนเป็นค่าเริ่มต้น ไม่จำเป็นต้องแสดงกล่องโต้ตอบ
ตรวจสอบก่อนขอสิทธิ์
ให้ขอสิทธิ์เฉพาะบน Android 13 ขึ้นไป และเฉพาะเมื่อยังไม่ได้รับสิทธิ์เท่านั้น ควบคุมการเรียกใช้ด้วยการตรวจสอบเวอร์ชัน
val needsRequest = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
ContextCompat.checkSelfPermission(
context, Manifest.permission.POST_NOTIFICATIONS
) != PackageManager.PERMISSION_GRANTEDการขอสิทธิ์ใน Compose
ใช้ Activity Result API เดียวกับที่คุณเรียนรู้สำหรับสิทธิ์อื่น ๆ โดยใช้ตัวเปิดใช้งานกับสัญญา RequestPermission และเปิดใช้งานด้วย POST_NOTIFICATIONS
val launcher = rememberLauncherForActivityResult(
ActivityResultContracts.RequestPermission()
) { granted ->
// update UI based on whether notifications are allowed
}การเริ่มคำขอ
เรียกคำขอเฉพาะบน API 33 ขึ้นไป โดยควรเรียกเมื่อผู้ใช้ทำบางอย่างที่ได้ประโยชน์จากการแจ้งเตือน ไม่ใช่เรียกทันทีโดยไม่พิจารณาเมื่อเปิดแอป
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
launcher.launch(Manifest.permission.POST_NOTIFICATIONS)
}ขอสิทธิ์ในบริบทที่เหมาะสม
เช่นเดียวกับสิทธิ์ทั้งหมด ควรขอสิทธิ์ในบริบทที่เหมาะสม ตัวอย่างเช่น ขอหลังจากผู้ใช้เปิดใช้ฟีเจอร์อย่างการแจ้งเตือนเตือนความจำ พร้อมอธิบายประโยชน์ แทนที่จะขอทันทีที่เปิดแอป
จัดการการปฏิเสธอย่างเหมาะสม
หากผู้ใช้ปฏิเสธ อย่าให้แอปหยุดทำงาน ให้ปิดสวิตช์ที่ต้องพึ่งพาการแจ้งเตือน หรือแสดงคำแนะนำว่าการแจ้งเตือนปิดอยู่ พร้อมลิงก์ไปยัง Settings ของระบบ หากผู้ใช้ต้องการเปิดใช้งานภายหลัง
SDK เป้าหมายทำให้ระบบบังคับใช้
ข้อกำหนดด้านสิทธิ์ขณะทำงานมีผลเมื่อแอปของคุณ กำหนดเป้าหมายเป็น API 33 ขึ้นไป หากแอปเวอร์ชันเก่าทำงานบน Android 13 ระบบอาจแสดงกล่องโต้ตอบโดยอัตโนมัติเมื่อโพสต์ครั้งแรก แต่คุณก็ควรขอสิทธิ์อย่างชัดเจนอยู่ดี
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับสิทธิ์ขณะทำงานสำหรับการแจ้งเตือน
สรุปทบทวน
คุณจัดการสิทธิ์การแจ้งเตือนได้แล้ว:
- Android 13 ขึ้นไปต้องใช้สิทธิ์ขณะทำงาน
POST_NOTIFICATIONS - ประกาศสิทธิ์ใน Manifest และขอสิทธิ์ด้วย Activity Result API
- ควบคุมการขอสิทธิ์ด้วยการตรวจสอบเวอร์ชัน และขอในบริบทที่เหมาะสม
- จัดการกรณีถูกปฏิเสธโดยลดความสามารถลงอย่างเหมาะสม
คุณเรียนหลักสูตรการแจ้งเตือนจบแล้ว
คำถามที่พบบ่อย
บทเรียน “สิทธิ์การแจ้งเตือนขณะทำงาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สิทธิ์การแจ้งเตือนขณะทำงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Android Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Android Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สิทธิ์การแจ้งเตือนขณะทำงาน”
ขอสิทธิ์การแจ้งเตือนบน Android 13 ขึ้นไป คุณปฏิบัติ Android Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Android Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Android Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “สิทธิ์การแจ้งเตือนขณะทำงาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Android Academy นี้ได้ไหม
ได้ บทเรียน Android Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ช่องการแจ้งเตือน
- การสร้างการแจ้งเตือน
- การดำเนินการและ Deep Link
- สิทธิ์การแจ้งเตือนขณะทำงาน