במכשירים עם Android מגרסה 15 ואילך:
להטמיע בחירת דומיין
בין שירות ה-IMS ושירותים מדור קודם ברשתות שעברו מעבר בין מעגלים באמצעות
ממשק API של המערכת DomainSelectionService
. DomainSelectionService
הוא ממשק מוגדר היטב בין פלטפורמת Android לבין ספק
יישום של בחירת דומיין. הממשק הזה מאפשר להטמיע את הספק
מספקים מידע לגבי אותות, כמו הדומיין שאליו נשלחות השיחות היוצאות והודעות ה-SMS
מוצבות והעדפת סוג רשת בסריקת רשת, לפלטפורמה.
איור 1. תרשים ארכיטקטורה של התכונה 'בחירת דומיין'
דוגמאות ומקור
מערכת Android מספקת קובץ עזר להטמעת התכונה של בחירת דומיין
AOSP בכתובת TelephonyDomainSelectionService
. לקבלת מידע מפורט
בתיעוד של ממשק ה-API DomainSelectionService
, ראו:
DomainSelectionService
והמחלקות האחרות ב-API.
הטמעה
כדי להטמיע את התכונה של בחירת דומיין במכשיר Android: יש לבצע את השלבים הבאים:
יוצרים אפליקציה לבחירת דומיינים. השירות חייב להיות מוגדר קובץ
AndroidManifest.xml
.הוספת הגדרה לשכבת-העל של המכשיר כדי לאפשר לפלטפורמה להתחבר אל הטמעת
DomainSelectionService
.תמיכה בממשקי HAL ברדיו הנדרשים לתכונה של בחירת הדומיין.
בקטע הזה מופיעים פרטים נוספים על השלבים האלה.
יש להוסיף ערך שירות בקובץ AndroidManifest.xml
כדי שהאפליקציה לבחירת הדומיין שלך תרשום את השירות DomainSelectionService
עם ה-framework, מוסיפים רשומת שירות בקובץ המניפסט באמצעות הפקודה הבאה:
פורמט:
<service
android:name="com.example.domainselection.DomainSelectionService"
android:directBootAware="true"
android:persistent="true"
…
android:permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
…
<intent-filter>
<action android:name="android.telephony.DomainSelectionService"/>
</intent-filter>
…
</service>
הגדרת השירות ב-AndroidManifest.xml
חייבת להגדיר את הפרטים הבאים
כדי להפעיל את התכונה של בחירת דומיינים.
directBootAware="true"
: מאפשר לגלות את השירות ולהפעיל אותו טלפוניה לפני שהמשתמש מבטל את נעילת המכשיר. לשירות אין גישה אחסון בהצפנה במכשיר לפני שהמשתמש מבטל את נעילת המכשיר. לקבלת מידע נוסף מידע, מידע נוסף זמין במאמרים תמיכה במצב אתחול ישיר והצפנה מבוססת-קבצים.persistent="true"
: מאפשרת לשירות לפעול באופן עקבי ולא לפעול נהרגו על ידי המערכת כדי לשחזר את הזיכרון. המאפיין הזה פועל רק אם אפליקציה שמיועדת כאפליקציית מערכת.permission="android.permission.BIND_DOMAIN_SELECTION_SERVICE"
: הבטחה שרק תהליך עם ההרשאהBIND_DOMAIN_SELECTION_SERVICE
יכולים להיות מקושרים לאפליקציה. הפעולה הזו מונעת קישור של אפליקציה בעייתית אל השירות, מפני שרק אפליקציות מערכת יכולות לקבל את ההרשאה .
השירות חייב גם לציין את הרכיב intent-filter
עם
פעולת android.telephony.DomainSelectionService
. היא מאפשרת ל-framework למצוא
השירות DomainSelectionService
.
הגדרת תצורה בשכבת-העל של המכשיר
כדי שהפלטפורמה תהיה מקושרת באופן מאובטח לשירות DomainSelectionService
, צריך להוסיף
את התצורה הבאה לשכבת-העל של המכשיר:
config_domain_selection_service_component_name
: שם הרכיב (מחרוזתComponentName
שטוחה) של שירותDomainSelectionService
כי מערכת Android לא תומכת באפליקציות עם אפליקציות שניתנות להורדה על ידי צד שלישי
DomainSelectionService
הטמעות, האפליקציה לבחירת דומיינים חייבת להיות
אפליקציית מערכת שנמצאת ב-/system_ext/priv-app/
או ב-/product/priv-app/
. ה-framework מאמת אם שם החבילה של ההטמעה
תואם לערך שכבת-העל במכשיר כדי לוודא שרק אפליקציות מהימנות שהותקנו מראש
עובר.
תמיכה בממשקי רדיו עם HAL
כדי להפעיל את התכונה של בחירת הדומיין, צריך לתמוך בתקשורת HAL הנדרשת הבאה ממשקים:
-
void setEmergencyMode(int serial, EmergencyMode emcModeType); void triggerEmergencyNetworkScan(int serial, EmergencyNetworkScanTrigger request); void cancelEmergencyNetworkScan(int serial, boolean resetScan); void exitEmergencyMode(int serial);
-
void emergencyNetworkScanResult(RadioIndicationType type, EmergencyRegResult result);
אימות
כדי לבדוק שמסגרת הטלפוניה מגיבה באופן תקין
הממשק DomainSelectionService
, הרצת בדיקות ה-CTS ב-
DomainSelectionServiceTestOnMockModem
.