אנדרואיד 9 מספק ממשקי API לתמיכה טובה יותר באפליקציות שיחות של צד שלישי (3P). יישומי שיחות תלת-צדדיים מסתמכים בדרך כלל על ממשקי API של טלפוניה כגון שידור PHONE_STATE
כדי להתקיים לצד שיחות טלפון של הספק. כתוצאה מכך, אפליקציות שיחות 3P חייבות לתת עדיפות לשיחות הספק ולעיתים קרובות לפנות לדחייה שקטה של שיחות נכנסות באפליקציה, או לסיים שיחה מתמשכת כדי לפנות מקום לשיחת הספק.
ממשקי ה-API באנדרואיד 9 תומכים בתרחישים של שיחות בו-זמנית בין אפליקציות 3P ושיחות ספק. זה מאפשר, למשל, לקבל שיחת 3P נכנסת תוך כדי שיחת ספק. המסגרת לוקחת על עצמה את האחריות להבטחת שיחת הספק מתקיימת כאשר המשתמש מעורב בשיחת ה-3P.
באנדרואיד 9, אפליקציות שיחות 3P מעודדות ליישם את ה-API ConnectionService
בניהול עצמי. למידע נוסף על איך לבנות אפליקציית שיחות באמצעות ממשק API זה, ראה בניית אפליקציית שיחות .
ממשק ה-API ConnectionService
בניהול עצמי נותן למפתחים גם אפשרות להצטרף לכך ששיחות באפליקציה שלהם נרשמות ביומן השיחות של המערכת (ראה EXTRA_LOG_SELF_MANAGED_CALLS
). בהתאם לדרישות במסמך הגדרת התאימות ל-Android (CDD) (סעיף 7.4.1.2), עליך לוודא שהחייגן/אפליקציית הטלפון שלך מציגה את רשומות יומן השיחות ומציגה את השם של אפליקציית השיחות 3P שבה נוצרה השיחה (לדוגמה של כיצד אפליקציית חייגן AOSP עונה על דרישה זו, ראה רשומות יומן שיחות מאפליקציות שיחות 3P ).
אפליקציות אחראיות להגדרת CAPABILITY_SUPPORT_HOLD
ו- CAPABILITY_HOLD
על החיבורים של האפליקציות שלהם. עם זאת, ייתכן שאפליקציה לא יכולה להחזיק שיחה בנסיבות מסוימות. המסגרת כוללת הוראות לפתרון מקרים מסוג זה.
תרחישים
עליך לשנות את אפליקציית החייגן שלך כדי להתמודד עם התרחישים הבאים.
טיפול בשיחות נכנסות המנתקות שיחה מתמשכת
בתרחיש שבו יש שיחת 3P מתמשכת (למשל בשיחת SuperCaller) שאינה תומכת בהמתנה, והמשתמש מקבל שיחה סלולרית (למשל דרך הספק שלו FooCom), אפליקציית החייגן/טלפון שלך צריכה לציין למשתמש שענה שיחת הרשת הסלולרית תסיים את שיחת ה-3P המתמשכת.
חווית משתמש זו חשובה שכן לאפליקציית שיחות 3P עשויה להיות שיחה מתמשכת שלא ניתן לקיים על ידי המסגרת. מענה לשיחה סלולרית חדשה גורמת לניתוק שיחת ה-3P המתמשכת.
ראה את ממשק המשתמש למטה לדוגמא:
![שיחה נכנסת מנתקת שיחת 3P מתמשכת](https://source.android.com/static/docs/core/connect/images/incoming-call-3p-call-app.png?authuser=2&hl=he)
אפליקציית החייגן שלך יכולה לבדוק אם שיחה נכנסת גורמת לניתוק שיחה אחרת על ידי בדיקת תוספות השיחה . ודא ש- EXTRA_ANSWERING_DROPS_FG_CALL
מוגדר ל- TRUE
, ו- EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
מוגדר לשם האפליקציה שהשיחה שלה מנותקת עם מענה לשיחה הנכנסת הנכנסת.
רשומות יומן שיחות מיישומי שיחות תלת-צדדיים
מפתחים של אפליקציות שיחות 3P יכולים להצטרף לכך ששיחות באפליקציה שלהם יירשמו ביומן השיחות של המערכת (ראה EXTRA_LOG_SELF_MANAGED_CALLS
). המשמעות היא שאפשר לקבל ביומן השיחות ערכים שאינם לשיחות רשת סלולרית.
כאשר אפליקציית חייגן AOSP מציגה רשומות יומן שיחות הקשורות לאפליקציית שיחות 3P, שם האפליקציה שבה התרחשה השיחה מוצג ביומן השיחות, כפי שמוצג להלן:
![הזנת יומן שיחות עם אפליקציית שיחות 3P](https://source.android.com/static/docs/core/connect/images/call-log-entry-3p.png?authuser=2&hl=he)
כדי לקבוע את השם של אפליקציה המשויכת לערך יומן שיחות, השתמש בעמודות PHONE_ACCOUNT_COMPONENT_NAME
ו- PHONE_ACCOUNT_ID
בספק יומן השיחות כדי ליצור מופע של PhoneAccountHandle
, המזהה את המקור של ערך יומן שיחות. שאל TelecomManager
כדי לקבל את הפרטים עבור PhoneAccount.
כדי לקבוע אם רשומת יומן שיחות היא מאפליקציית שיחות תלת-צדדית, בדוק את יכולות PhoneAccount
כדי לראות אם CAPABILITY_SELF_MANAGED
מוגדר.
שיטת getLabel
של PhoneAccount
שהוחזר מחזירה את שם האפליקציה המשויכת לערך יומן שיחות מאפליקציית השיחות של 3P.
מַתַן תוֹקֵף
כדי לבדוק שהמכשיר שלך תומך באפליקציות שיחות 3P, השתמש באפליקציית הבדיקה של Telecomm, המיישמת את ה-API של ConnectionService בניהול עצמי. האפליקציה ממוקמת ב- /packages/services/Telecomm/testapps/
.
בנה את אפליקציית הבדיקה מהשורש של מאגר המקור של Android באמצעות:
mmma packages/services/Telecomm/testapps/
התקן את ה-build apk באמצעות
adb install -g -r <apk path>
. לאחר מכן נוסף סמל מדגם בניהול עצמי למפעיל שלך.הקש על הסמל כדי לפתוח את אפליקציית הבדיקה.
טיפול בשיחות נכנסות המנתקות שיחה מתמשכת
בצע את השלבים הבאים כדי לוודא ששיחה נכנסת מנתקת שיחת 3P מתמשכת.
![בדיקת אפליקציה עבור אפליקציות שיחות תלת-ממדיות](https://source.android.com/static/docs/core/connect/images/test-app-3p-call.png?authuser=2&hl=he)
- בטל את הסימון באפשרות החזקה .
- הקש על יציאה כדי להתחיל שיחה יוצאת לדוגמה חדשה.
- הקש על הלחצן פעיל כדי להפעיל את השיחה.
- התקשר למספר הטלפון של המכשיר הנבדק באמצעות טלפון אחר. זה מעורר את התרחיש שבו החייגן שלך מסופק בשם של אפליקציה, שתנתק את השיחה שלה.
- כשתסיים, הקש על כפתור ניתוק באפליקציית הבדיקה.
רשומות יומן שיחות מיישומי שיחות תלת-צדדיים
לאחר השלמת השלבים שלמעלה, אפליקציית הבדיקה הייתה אמורה לרשום קריאה ליומן השיחות של המערכת. כדי לאשר שהמכשיר רושם שיחות מאפליקציות שיחות 3P, פתח את אפליקציית החייגן שלך ואשר שהשיחה מופיעה ביומן השיחות של המערכת.