ใน Android 12.0 (API ระดับ 31) ขึ้นไป ระบบจะให้
เทมเพลตการแจ้งเตือน CallStyle
เพื่อแยกการแจ้งเตือนสายเรียกเข้าออกจาก
การแจ้งเตือนประเภทอื่นๆ ใช้เทมเพลตนี้เพื่อสร้างคอนเทนต์ขาเข้าหรือ
การแจ้งเตือนสายที่สนทนาอยู่ เทมเพลตรองรับการแจ้งเตือนรูปแบบขนาดใหญ่
ที่มีข้อมูลผู้โทรและการดำเนินการที่จำเป็น เช่น การรับสาย หรือ
สายที่ปฏิเสธ
เนื่องจากสายเรียกเข้าและสายที่สนทนาอยู่เป็นกิจกรรมที่มีลำดับความสำคัญสูง การแจ้งเตือนเหล่านี้ จะได้รับลำดับความสำคัญสูงสุดในหน้าต่างแจ้งเตือน การจัดอันดับนี้ยังทำให้ เพื่อส่งต่อการโทรที่สำคัญเหล่านี้ไปยังอุปกรณ์อื่นๆ
เทมเพลตการแจ้งเตือน CallStyle
มีการดำเนินการที่จำเป็นต่อไปนี้
- รับสายหรือปฏิเสธสายเรียกเข้า
- วางสายสำหรับสายที่สนทนาอยู่
- รับสายหรือวางสายเพื่อสกรีนสายเรียกเข้า
การทำงานในรูปแบบนี้จะปรากฏเป็นปุ่ม และระบบจะเพิ่มโดยอัตโนมัติ ไอคอนและข้อความที่เหมาะสม ไม่รองรับการติดป้ายกำกับปุ่มด้วยตนเอง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหลักการออกแบบการแจ้งเตือน โปรดดู การแจ้งเตือน
ระบบจะส่งการดำเนินการที่จำเป็นในรูปแบบ Intent เช่น hangupIntent
และ
answerIntent
ในส่วนต่อไปนี้ แต่ละคำถามเป็นการอ้างอิงไปยัง
โทเค็นที่ระบบของเราดูแล โทเค็นเป็นวัตถุขนาดเล็ก
สามารถส่งผ่านระหว่างแอปและกระบวนการต่างๆ ระบบคือ
มีหน้าที่จัดการอายุการใช้งานของโทเค็นและตรวจสอบว่า
PendingIntent
จะใช้งานได้แม้ว่าแอปที่สร้างแอปดังกล่าวจะใช้งานไม่ได้อีกต่อไป
วิ่งอยู่ การให้PendingIntent
กับแอปอื่นหมายความว่าคุณให้สิทธิ์
สิทธิ์ดังกล่าวในการดำเนินการที่ระบุไว้ เช่น ปฏิเสธหรือรับสาย
ระบบจะให้สิทธิ์นี้แม้ว่าแอปที่สร้าง Intent
ไม่ได้ทำงานอยู่ในขณะนี้ สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารอ้างอิง
สำหรับ PendingIntent
ตั้งแต่ Android 14 (API ระดับ 34) เป็นต้นไป คุณจะกำหนดค่าการแจ้งเตือนสายเรียกเข้าได้
ปิดไม่ได้ โดยใช้การแจ้งเตือนของ CallStyle
กับ
Notification.FLAG_ONGOING_EVENT
จนถึง
Notification.Builder#setOngoing(true)
ต่อไปนี้เป็นตัวอย่างการใช้วิธีการต่างๆ ด้วย CallStyle
การแจ้งเตือน
Kotlin
// Create a new call, setting the user as the caller. val incomingCaller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as the caller. Person incomingCaller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
สายเรียกเข้า
ใช้เมธอด forIncomingCall()
เพื่อสร้างการแจ้งเตือนรูปแบบการโทรสำหรับ
สายเรียกเข้า
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incomingCaller);
สายที่สนทนาอยู่
ใช้เมธอด forOngoingCall()
เพื่อสร้างการแจ้งเตือนรูปแบบการโทรสำหรับ
สายที่สนทนาอยู่
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOngoingCall(caller, hangupIntent)) .addPerson(second_caller);
สกรีนสายเรียกเข้า
ใช้เมธอด forScreeningCall()
เพื่อสร้างการแจ้งเตือนรูปแบบการโทรสำหรับ
การสกรีนสายเรียกเข้า
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
// Create a call style notification for screening a call. Notification.Builder builder = new Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
ให้ความเข้ากันได้ใน Android เวอร์ชันต่างๆ มากขึ้น
เชื่อมโยงการแจ้งเตือน CallStyle
ใน API เวอร์ชัน 30 หรือเวอร์ชันก่อนหน้าด้วย
บริการที่ทำงานอยู่เบื้องหน้าเพื่อกำหนดอันดับที่สูงที่ผู้ใช้ได้รับใน API
ระดับ 31 ขึ้นไป นอกจากนี้ยังมีการแจ้งเตือน CallStyle
รายการใน API เวอร์ชัน 30
หรือก่อนหน้า จะได้อันดับที่คล้ายกันโดยการทำเครื่องหมายการแจ้งเตือนเป็น
ตามสี โดยใช้เมธอด setColorized()
ใช้ Telecom API กับการแจ้งเตือนของ CallStyle
สำหรับข้อมูลเพิ่มเติม โปรดดู
ภาพรวมเฟรมเวิร์กด้านโทรคมนาคม