0Pricing
Android Academy · บทเรียน

สิทธิ์การแจ้งเตือนขณะทำงาน

ขอสิทธิ์การแจ้งเตือนบน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ช่องการแจ้งเตือน
  2. การสร้างการแจ้งเตือน
  3. การดำเนินการและ Deep Link
  4. สิทธิ์การแจ้งเตือนขณะทำงาน
← กลับไปที่ Android Academy