Android 7.0 ย้ายฟังก์ชันที่เกี่ยวข้องกับการแจ้งเตือนการโทรจากบริการระบบโทรคมนาคมในแพลตฟอร์ม Android ไปยังแอปพลิเคชัน Dialer ก่อนหน้านี้ ความรับผิดชอบในการแสดงการแจ้งเตือนที่เกี่ยวข้องกับการโทรถูกแบ่งระหว่าง Telecom และแอป Dialer เริ่มต้น ทำให้เกิดพฤติกรรมที่ไม่สอดคล้องกัน ใน Android 7.0 ตัวเรียกเลขหมายจะรับผิดชอบทั้งหมดในการจัดการการแจ้งเตือนการโทร
ลักษณะการทำงานใน Android 6.x และรุ่นก่อนหน้า
ใน Android รุ่นก่อนหน้านี้ Telecom และ Dialer แบ่งความรับผิดชอบตามที่อธิบายไว้ด้านล่าง:
ฟังก์ชั่นการทำงาน | ดำเนินการโดยเทเลคอม | เสร็จสิ้นโดยโปรแกรมหมุนหมายเลข |
---|---|---|
การแจ้งเตือนสายเรียกเข้า | ใช่ (เสียงกริ่ง สั่น) | ใช่ (แสดงการแจ้งเตือน, ID ผู้โทร) |
ส่งไปที่วอยซ์เมล | ใช่ | เลขที่ |
เสียงเรียกเข้าแบบกำหนดเอง | ใช่ | เลขที่ |
การแจ้งเตือนสายที่ไม่ได้รับ | ใช่ | เลขที่ |
ตัวบ่งชี้การรอข้อความ (ข้อความเสียงสำหรับการโทร) | ใช่ (โทรศัพท์) | เลขที่ |
การแจ้งเตือนข้อความเสียงพร้อมภาพ | เลขที่ | ใช่ |
ตัวอย่างของพฤติกรรมที่ไม่สอดคล้องกันที่เกิดจากการแบ่งความรับผิดชอบนี้ได้แก่:
- โทรคมนาคมมีหน้าที่รับผิดชอบในการเริ่มเสียงกริ่ง/เครื่องสั่น แต่ผู้โทรออกมีหน้าที่แสดงการแจ้งเตือนสายเรียกเข้า หากตัวเรียกเลขหมายเริ่มต้นช้า อาจส่งผลให้เสียงเรียกเข้าเริ่มเป็นเวลาหลายวินาทีก่อนที่จะแสดงการแจ้งเตือนสายเรียกเข้า
- โทรคมนาคมมีหน้าที่รับผิดชอบในการแสดงการแจ้งเตือนสายที่ไม่ได้รับ เนื่องจากฟีเจอร์ที่เป็นกรรมสิทธิ์ (เช่น ID ผู้โทรของ Google) ใช้งานไม่ได้กับการแจ้งเตือนเหล่านี้ จึงอาจส่งผลให้เกิดความไม่สอดคล้องกันระหว่างการแจ้งเตือนของ Telecom และ UI ของผู้โทร (เช่น บันทึกการโทร)
ลักษณะการทำงานใน Android 7.0 และใหม่กว่า
โปรแกรม Android Open Source Project (AOSP) Dialer ใช้ฟังก์ชันใหม่ สำหรับรายละเอียด โปรดดูเอกสารต่อไปนี้:
- การแจ้งเตือนสายที่ไม่ได้รับ
โทรคมนาคม/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java
ตัวเรียกเลขหมาย/android/ตัวเรียกเลขหมาย/calllog/MissedCallNotifier.java - การเล่นเสียงเรียกเข้า:
กรอบงาน/ฐาน/โทรคมนาคม/java/android/telecom/InCallService.java
โทรคมนาคม/src/com/android/server/telecom/InCallController.java
ตัวหมุนหมายเลข/java/com/android/incallui/ringtone/
ตัวเรียกเลขหมาย/java/com/android/incallui/StatusBarNotifier.java - การแจ้งเตือน VVM
กรอบงาน/ฐาน/โทรศัพท์/java/android/telephony/TelephonyManager.java
Telephony/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
รูปแบบการแจ้งเตือนสำหรับการโทรใน Android 12 ขึ้นไป
สำหรับอุปกรณ์ที่ใช้ Android 12 ขึ้นไป เพื่อให้ผู้ใช้ได้รับประสบการณ์การโทรที่สอดคล้องกัน เราขอแนะนำให้แอปใช้รูปแบบการแจ้งเตือน CallStyle
สำหรับสายเรียกเข้าและสายที่กำลังสนทนาอยู่ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ การแจ้งเตือนสายโทรศัพท์ใหม่ เพื่อจัดอันดับความสำคัญของสายเรียกเข้า
การนำไปปฏิบัติ
ผู้ใช้อุปกรณ์อาจจำเป็นต้องอัปเดตส่วนประกอบโทรคมนาคม/โทรศัพท์ที่เปิดเผย API ที่พร้อมใช้งานโดยตัวเรียกเลขหมายเริ่มต้น