Android 14 ได้เปิดตัวการอัปเดต API พร้อมกับการเปลี่ยนแปลงประสบการณ์ของผู้ใช้ในการกำหนดเส้นทางเสียงสำหรับอุปกรณ์ Bluetooth LE Audio (LEA) รวมถึงเครื่องช่วยฟัง การเปลี่ยนแปลงเหล่านี้ส่งผลต่อวิธีที่แอป VoIP จัดการการเลือกเอาต์พุตเสียง เอกสารนี้ให้ข้อมูลที่จำเป็นสำหรับนักพัฒนาแอปในการปรับแอป VoIP ให้เข้ากับการเปลี่ยนแปลงเหล่านี้และมอบประสบการณ์การใช้งานที่ราบรื่น
การเปลี่ยนแปลงลักษณะการทํางานใน Android 14
- การกำหนดเส้นทางอุปกรณ์ LEA: ตอนนี้อุปกรณ์ LEA จะเปิดใช้โดยค่าเริ่มต้นในโทรศัพท์ Pixel และ AOSP อย่างไรก็ตาม หากต้องการจดจำและเลือกอุปกรณ์ LEA เป็นเอาต์พุตเสียงอยู่เสมอ แอปต้องใช้ API ใหม่ที่เปิดตัวใน API ระดับ 31
- การกำหนดเส้นทางของอุปกรณ์ช่วยฟัง: ก่อนหน้านี้ เสียงจะส่งไปยังอุปกรณ์ช่วยฟังโดยค่าเริ่มต้นเสมอ แม้ว่าผู้ใช้จะเลือกหูฟังอย่างชัดเจนก็ตาม ใน Android 14 ตอนนี้เครื่องช่วยฟังจะแสดงเป็นหนึ่งในตัวเลือกเอาต์พุตเสียงที่พร้อมใช้งาน ซึ่งผู้ใช้ต้องเลือกอย่างชัดเจน
เหตุผลของการเปลี่ยนแปลง
- ก่อนที่จะมี Android 12 ยังไม่มี API ให้ใช้เครื่องช่วยฟังอย่างชัดเจนสำหรับการโทร ซึ่งส่งผลให้เสียงเริ่มต้นเป็นเครื่องช่วยฟังเสมอเมื่อเชื่อมต่ออยู่
- ซึ่งทำให้ผู้ใช้เปลี่ยนจากเครื่องช่วยฟังเป็นหูฟังโทรศัพท์ได้ยากโดยไม่ต้องถอดเครื่องช่วยฟังออก
- ปัญหาเดียวกันกับชุดหูฟัง Bluetooth LE Audio
เพื่อแก้ไขปัญหาเหล่านี้ Android 14 ได้เปิดตัวการเปลี่ยนแปลงเพื่อให้แอป VoIP ควบคุมการกำหนดเส้นทางเสียงได้มากขึ้นและเพื่อให้อุปกรณ์เสริมบลูทูธทำงานได้อย่างสอดคล้องกัน
การเปลี่ยนแปลงที่สำคัญใน Android 14
- API ทั่วไปสำหรับการเลือกเส้นทาง: Android 12 ได้เปิดตัว
AudioManager.setCommunicationDevice
เพื่ออนุญาตให้แอประบุเส้นทางเสียง ซึ่งรวมถึงเครื่องช่วยฟังและอุปกรณ์ LEA อย่างไรก็ตาม ใน Android 12 และ 13 เครื่องช่วยฟังจะไม่แสดงเป็นอุปกรณ์ ซึ่งทำให้ API นี้มีประโยชน์น้อยลง - ระดับการมองเห็นเครื่องช่วยฟัง: ใน Android 14 ตอนนี้เครื่องช่วยฟังจะแสดงเป็นอุปกรณ์ ซึ่งช่วยให้แอปแสดงองค์ประกอบ UI เพื่อให้ผู้ใช้เลือกเอาต์พุตเสียงที่ต้องการได้
- การเลิกใช้งาน API: ระบบได้เลิกใช้งาน API หลายรายการที่เกี่ยวข้องกับการกำหนดเส้นทางเสียงใน Android 14 แล้ว นักพัฒนาแอปต้องย้ายข้อมูลไปยัง API ใหม่ที่เปิดตัวใน API ระดับ 31 เพื่อจัดการการเลือกเอาต์พุตเสียงอย่างมีประสิทธิภาพ
การดำเนินการที่จำเป็นสำหรับนักพัฒนาแอป
- แนะนำอย่างยิ่ง: ย้ายข้อมูลไปยังคลัง Telecom Jetpack หากเป็นไปได้ ให้ย้ายข้อมูลแอป VoIP ไปยังคลัง Telecom Jetpack เพื่อการจัดการการกำหนดเส้นทางเสียงที่มีประสิทธิภาพยิ่งขึ้น
- ใช้
setCommunicationDevice()
หรือ API เวอร์ชันล่าสุด (แสดงอยู่ด้านล่าง) หากย้ายข้อมูลไม่ได้