ב-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 שליטה רבה יותר על ניתוב האודיו ומבטיחים התנהגות עקבית באביזרי Bluetooth.
שינויים מרכזיים ב-Android 14
- ממשקי API כלליים לבחירת מסלול: ב-Android 12 הושק
AudioManager.setCommunicationDevice
כדי לאפשר לאפליקציות לציין מסלולי אודיו, כולל מכשירי שמיעה ומכשירי LEA. עם זאת, ב-Android 12 וב-Android 13, מכשירי שמיעה לא היו גלויים כמכשירים, מה שמגביל את התועלת של ממשק ה-API הזה. - הרשאות גישה למכשירי שמיעה: ב-Android 14, מכשירי השמיעה גלויים עכשיו כמכשירים. כך, האפליקציות יכולות לספק למשתמשים רכיבים בממשק המשתמש כדי לבחור את פלט האודיו המועדף עליהם.
- הוצאה משימוש של ממשקי API: חלק מממשקי ה-API שקשורים לניתוב אודיו הוצאו משימוש ב-Android 14. כדי לנהל ביעילות את הבחירה של פלט האודיו, המפתחים צריכים לעבור לממשקי ה-API החדשים שהוצגו ברמת API 31.
הפעולות הנדרשות למפתחים
- מומלץ מאוד: העברה ל-Telecom Jetpack Library. אם אפשר, כדאי להעביר את אפליקציית ה-VoIP לספרייה של Telecom Jetpack כדי לנהל את ניתוב האודיו בצורה יעילה יותר.
- אם לא ניתן לבצע את ההעברה, צריך להשתמש ב-
setCommunicationDevice()
או בממשקי ה-API העדכניים ביותר (המפורטים בהמשך).