Cell Broadcast

מודול CellBroadcast מפחית מאמצים חוזרים ונשנים עבור יצרני ציוד מקורי (מה שבתורו מפחית את הפיצול בכל מערכת האקולוגית של אנדרואיד ומספק התנהגות עקבית למשתמשי הקצה) ועוזר לייעל את בדיקות הספק והסמכה עבור דרישות הקשורות ל-CellBroadcast (מכיוון שלא ניתן לשנות את הקוד על ידי יצרני OEM ). מודול זה ניתן לעדכון, כלומר הוא יכול לקבל עדכונים לפונקציונליות מחוץ למחזור השחרור הרגיל של אנדרואיד.

פורמט חבילה

מודול CellBroadcast מורכב מהשירות והאפליקציה הבאים.

  • שירות CellBroadcastService תומך בפענוח SMS של CellBroadcast, גיוף גיאוגרפי להתראת חירום אלחוטית (WEA) 3.0, בדיקות שכפול הודעות ושידור הודעות לאפליקציות. זהו שירות הודעות ממוקד גיאוגרפי ומגודר גיאוגרפי אחד לרבים שנועד להעביר הודעות למספר משתמשי טלפון נייד, באזור מוגדר, בו-זמנית. השירות מוגדר על ידי ועדת ETSI GSM, 3GPP , והוא חלק מתקני הטלקומוניקציה.

  • אפליקציית CellBroadcastReceiver היא אפליקציית מערכת ברירת מחדל המטפלת בהתראות חירום ולא חירום (כגון התראות ענבר ונשיאות) ומציגה את המידע למשתמשי הקצה בהתבסס על תקנות הספק והאזוריות.

זרימת הודעות CellBroadcast

האיור הבא מציג את זרימת ההודעות CellBroadcast.

זרימת הודעות CellBroadcastReceiver

איור 1. זרימת הודעות CellBroadcastReceiver

  1. שכבת ממשק הרדיו (RIL) מודיעה InBoundSMSHandler על SMS של CDMA/GSM CellBroadcast.

  2. המסגרת מעבירה את CellBroadcast SMS למודול CBS כדי לנתח ולעבד את ההודעה הנכנסת.

  3. לאחר עיבוד ההודעה, CellBroadcastService מעביר את הכוונה לאפליקציית ברירת המחדל של CellBroadcastReceiver של המערכת.

  4. אפליקציית CellBroadcastReceiver מציגה את ההודעה למשתמש.

פורמט מודול

ה-CellBroadcastService ואפליקציית CellBroadcastReceiver כלולים בקובץ APEX בודד ( com.android.cellbroadcast ), הזמין עבור מכשירים עם אנדרואיד 11 ומעלה. המודול כולל קוד package/app/CellBroadcastReceiver ומעביר מחלקות מסגרת קיימות packages/modules/CellBroadcastService .

תלות במודול

מודול CellBroadcast מקיים אינטראקציה עם המסגרת באמצעות @SystemApi יציב בלבד (ללא @hide APIs) ותלוי בספריות הסטטיות הבאות.

  • Androidx.legacy_legacy-support-v13
  • Androidx.recyclerview_recyclerview
  • Androidx.preference_preference
  • androidx.legacy_legacy-preference-v14
  • androidx.appcompat_appcompat

אתה יכול להתאים אישית את התצורה באמצעות שכבות על משאבי זמן ריצה (RROs) .

תצורת הרשאה

מודול CellBroadcast נחתם בחתימת גוגל במקום חתימת פלטפורמה, מה שאומר שהמודול מאבד גישה להרשאות חתימה. במקום זאת, אנדרואיד 11 מגדירה את הרשאת החתימה החדשה com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY בתוך מודול CellBroadcast; רק חבילות במודול יכולות לקבל את ההרשאה כשהן חתומות עם אותו מפתח. הרשאה זו מאפשרת לאפליקציית CellBroadcastReceiver לקבל גישה מלאה למסד הנתונים בתוך CellBroadcastService.

הפלטפורמה מעניקה ל- android.permission.READ_CELL_BROADCASTS הרשאת זמן ריצה לאפליקציית SMS של מערכת ברירת המחדל לגישה להיסטוריית התראות חירום.

שילוב מודול CellBroadcast

סעיף זה מתאר כיצד לשלב את מודול CellBroadcast.

שילוב עם הגדרות

אתה יכול להחליט היכן לשלב את הגדרות CellBroadcast באפליקציית ההגדרות (משתמשי קצה ניגשים לדף הגדרות CellBroadcast מהגדרות > אפליקציות והתראות > מתקדם > התראת חירום ). כדי להפעיל את אפליקציית CellBroadcastReceiver מאפליקציית ההגדרות, שנה את תצורות ההגדרות הבאות עם שם החבילה com.android.cellbroadcastreceiver .

<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>

שילוב עם אפליקציות העברת הודעות

אתה יכול לשלב קישור אפליקציה באפליקציות העברת הודעות כדי לפתוח את היסטוריית ההודעות של CellBroadcast. באפליקציית הודעות אנדרואיד, זה השתלב בהגדרות > מתקדם > התראת חירום . כדי לשלב קישור באפליקציית הודעות משלך, הגדר את הנתיב באפליקציית ההודעות והגדר את שם הרכיב עבור מודול CellBroadcast כ- com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity .

שילוב עם תיבת SMS

אתה יכול לאפשר הצגת הודעות CellBroadcast באפליקציית ברירת המחדל להעברת הודעות על ידי ביטול התצורה הבאה באמצעות שכבת-על של משאב זמן ריצה.

<item type="bool" name="enable_write_alerts_to_sms_inbox" />

מכיוון שהענקת הרשאות היא מחוץ לתחום של מודול CellBroadcast, עליך להעניק הרשאה ל- AppOpsManager.OP_WRITE_SMS למודול CellBroadcast כדי לספק תמיכה מקצה לקצה. ליישום ייחוס של AOSP, עיין בתיקון SmsApplication.java זה .

הפעלת אפליקציית CellBroadcastReceiver

לאפליקציית CellBroadcastReceiver יש את נקודות ההשקה הבאות.

  • תפריט אפליקציית ההגדרות.

  • אפליקציה (כולל אפליקציות של צד שלישי) כגון אפליקציית הודעות המקשרת להיסטוריית הודעות CellBroadcast.

  • (אופציונלי) סמל השקה ממסך הבית של אנדרואיד שנוסף על ידי ה-OEM. לפרטים, ראה הוספת סמל הפעלה .

הגדרות אפליקציית CellBroadcastReceiver

צילומי המסך הבאים מציגים את תפריט ההגדרות של אפליקציית CellBroadcastReceiver.

תפריט הגדרות אפליקציית CellBroadcastReceiver

איור 2. תפריט הגדרות אפליקציית CellBroadcastReceiver

היסטוריית התראות חירום

איור 3. מסך היסטוריית התראות חירום

הוספת סמלי השקה

אתה יכול לאפשר גישה להיסטוריית ההודעות של CellBroadcast ממפעיל האפליקציות ודרך סמלי ההשקה שלך.

  • כדי לאפשר גישה להיסטוריית הודעות ממפעיל היישומים, עוקף את התצורה הבאה באמצעות RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • כדי לעקוף את סמל ברירת המחדל של AOSP, עוקף את התצורה הבאה באמצעות RRO.

    <!-- Customize launcher icon for cellbroadcast history -->
    <item type="mipmap" name="ic_launcher_cell_broadcast" />
    

הפעלת הקוד הסודי של CMAS

כדי להפעיל את הקוד הסודי של CMAS, *#*#CMAS#*#* ( *#*#2627#*#* בלוח החיוג), על אפליקציית חייגן להאזין לקוד החייגן המיוחד בצורה של *#*# code #*#* וטפל בקוד באמצעות השיטה הציבורית sendDialerSpecialCode .

דרישה למידע על אזור: ערוץ 50

ערוץ 50 הוא ערוץ מיוחד עבור ספקים לשידור מידע הקשור לאזור (למעט MTN בדרום אפריקה). עבור ערוץ זה, הודעות שידור אינן מובילות לדו-שיח קופץ או להתראה. במקום זאת, הודעות שידור מופיעות בסטטוס ה-SIM של תפריט ההגדרות, או בשורת המצב (לדוגמה, הצגת מיקוד).

הטמעת Android CellBroadcastService מספקת תמיכה עבור ממשקי ה-API הבאים בשירות השידור הסלולרי עבור אפליקציות ההגדרות ו-SysUI כדי לקבל את המידע של ערוץ 50 השידור. כדי ליישם זאת, בצע את הפעולות הבאות:

  • רשום את השידור android.telephony.action.AREA_INFO_UPDATED ועקוף את שם החבילה של המקלט config_area_info_receiver_packages דרך RRO.

  • התחבר ל- CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE .

מכיוון שיישומי ההגדרות וה-SysUI נמצאים מחוץ לתחום של מודול CellBroadcast, עליך ליישם את השינויים שלך ב-SystemUI או באפליקציית ההגדרות כדי לספק תמיכה מקצה לקצה. ליישום עזר, עיין באפליקציית CellBroadcastService Settings .

התאמה אישית

אתה לא יכול לשנות ישירות את קוד המקור של מודול CellBroadcast, אבל אתה יכול להשתמש בשכבות על משאבי ריצה (RROs) כדי להפעיל (או להשבית) פרמטרים (לדוגמה, אתה יכול להתאים אישית את הצבע של התראות וממדים בדיאלוגים). כדי לעקוף את ערכי ברירת המחדל של הפרמטרים המשמשים במודול CellBroadcast, שנה את שם חבילת היעד ל- com.android.cellbroadcastreceiver . בנוסף:

אם ביישום חסרים משאבי תרגום מחרוזת ממשק משתמש או אם התרגומים אינם עומדים בציפיות שלך, אתה יכול לעקוף את משאבי התרגום באמצעות RRO או לעבוד עם צוות התרגום של Google כדי לתרגומי מחרוזות במעלה הזרם למודול CellBroadcast. אם תעקוף את משאבי התרגום, Google חייבת לחשוף מחרוזות אלו ב- overlayable.xml כדי לאפשר עקיפה. אם אתה צריך תצורות נוספות להתאמה אישית של ממשק המשתמש, פנה לקבוצת התמיכה של CellBroadcast .

העברת נתונים

אנדרואיד 11 כולל אפליקציית CellBroadcast מדור קודם, שהיא מנגנון לשימור והעברה של נתוני אפליקציה (כולל הגדרות משתמש והיסטוריית התראות חירום) עבור מכשירים המשדרגים למודול CellBroadcast. יישומי אנדרואיד המשתמשים במודול CellBroadcast צריכים לכלול את אפליקציית CellBroadcast מדור קודם ב-build שלהם להעברת נתונים. אם היישום שלך משתמש בפתרון CellBroadcast מותאם אישית, עליך להגדיר APK של CellBroadcastContentProvider כדי לשמר נתונים (תוכל להסיר בבטחה את APK השידור הסלולרי מדור קודם במהדורה שלאחר מכן).

במכשירים ששודרגו לשימוש במודול CellBroadcast, המודול שואב נתונים מה-AOSP LegacyCellBroadcastApp או מה-OEM המוגדר של CellBroadcastContentProvider ה-APK דרך רשות cellbroadcast-legacy המוגדרת היטב.

שימוש ב-APK של CellBroadcastContentProvider המוגדר על ידי OEM

בעת הגדרת APK של CellBroadcastContentProvider, ה-APK חייב לעמוד במפרטים אלה.

  • ה-APK הוא APK ללא ראש שמציג רק את התוכן של מסד הנתונים וה- SharedPreferences שלו דרך אובייקט ContentProvider עם סמכות cellbroadcast-legacy , ואינו נגיש לאפליקציות של צד שלישי.

  • ה-APK מפותח ובבעלות ה-OEM, כאשר ה-OEM יכול להמשיך לארח את סכימת ה-API הנסתרת שלהם.

כדי להעביר SharedPreferences למודול CellBroadcast, ה-APK של CellBroadcastContentProvider חייב לתמוך בשיטת ContentProvider.call ) עם הפרמטרים הבאים:

  • סמכות: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • שיטה: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • ארגו: @SystemAPI CellBroadcast.Preference

    זוהי רשימה של מפתחות העדפות משותפים נתמכים עבור מודול CellBroadcast. הנתונים מגיעים מ- SharedPreferences עבור שיטת ContentProvider.call .

כדי להעביר היסטוריית הודעות למודול CellBroadcast, ה-APK של CellBroadcastContentProvider חייב לתמוך בשיטת ContentProvider.query עם הפרמטרים הבאים:

  • סמכות: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI . עמודות שאילתה מציגות את מאפייני ההודעות הנתמכים עבור מודול CellBroadcast. קולט נתונים (ממסד הנתונים שלך) עבור שיטת ContentProvider.query .

ליישום עזר עבור CellBroadcastContentProvider, עיין ב- LegacyCellBroadcastContentProvider .

בדיקה

ה-Android Compatibility Test Suite (CTS) מאמת את הפונקציונליות של ממשקי API של מערכת תלויי אפליקציה. אתה יכול גם להריץ unit tests/testappsp .

אם ה-OEM איפשר את הקוד הסודי CMAS עבור התקן, התקן זה יכול לתמוך במצב ניפוי באגים עם התכונות הבאות.

  • התראות בדיקה מקובצות תחת התראות אחרות עם הפעלה/כיבוי.

  • ההיסטוריה כוללת את כל ההודעות שהתקבלו אך לא הוצגו, כגון הודעות כפולות או הודעות בשפה אחרת.

  • הודעות מציגות את כל הפרמטרים הזמינים, כולל מספר סידורי, מזהה הודעה ותאריך תפוגה.

כדי להפעיל את מצב ניפוי הבאגים, חייג *#*#CMAS#*#* בחייגן.

איש קשר

לפרטים נוספים או שאלות על מודול CellBroadcast, צור קשר עם קבוצת התמיכה של CellBroadcast .