שידור סלולרי

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

פורמט החבילה

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

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

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

זרימת הודעות בשידור הסלולרי

האיור הבא מציג את זרימת ההודעות של CellCellcast.

זרימת הודעות ב-Cell BroadcastReceiver

איור 1. זרימת הודעות ב-Cell BroadcastReceiver

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

  2. ה-framework מעביר את ה-SMS של Cell Broadcast למודול של CBS כדי לנתח לעבד את ההודעה הנכנסת.

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

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

פורמט המודול

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

יחסי תלות של מודולים

מודול Cell Broadcast מקיים אינטראקציה עם ה-framework באמצעות שימוש יציב בלבד @SystemApi (ללא ממשקי API של @hide) ותלוי בספריות הסטטיות הבאות.

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

אפשר להתאים אישית את ההגדרות באמצעות שכבות-על של משאבים בזמן ריצה (RRO).

הגדרת ההרשאות

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

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

שילוב המודול של Cell Broadcast

בקטע הזה מוסבר איך לשלב את מודול Cell Broadcast.

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

אפשר להחליט איפה לשלב את ההגדרות של Cellcast דרך אפליקציית ההגדרות (משתמשי קצה ניגשים לדף ההגדרות של שידור סלולר מתוך הגדרות > אפליקציות התראות > מתקדם > התראה על מקרה חירום). להפעלה באפליקציה Cell BroadcastReceiver מאפליקציית Settings, יש לשנות את הפרטים הבאים הגדרות אישיות עם שם החבילה com.android.cellbroadcastreceiver

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

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

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

שילוב עם תיבת הדואר הנכנס של הודעות SMS

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

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

מכיוון שמתן הרשאות הוא מחוץ להיקף של מודול Cell Broadcast, עליך להעניק את ההרשאה AppOpsManager.OP_WRITE_SMS ל-CellCast כדי לספק תמיכה מקצה לקצה. בשביל הטמעה של קובצי עזר ל-AOSP: עיין בSmsApplication.java הזה תיקון.

הפעלת האפליקציה Cell BroadcastReceiver

אפליקציית Cell BroadcastReceiver כוללת את נקודות ההשקה הבאות.

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

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

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

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

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

תפריט ההגדרות של אפליקציית Cell BroadcastReceiver

איור 2. תפריט ההגדרות של אפליקציית Cell BroadcastReceiver

היסטוריה של התרעות חירום

איור 3. מסך ההיסטוריה של ההתראות על מקרה חירום

הוספת סמלי הפעלה

ניתן לאפשר גישה להיסטוריית ההודעות של Cell Broadcast ממרכז האפליקציות ובאמצעות סמלי ההשקה שלכם.

  • כדי לאפשר גישה להיסטוריית ההודעות ממרכז האפליקציות, צריך לשנות את את ההגדרות הבאות באמצעות 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 Cell BroadcastService מספקת תמיכה באמצעות ממשקי ה-API בשירות השידור הסלולרי עבור אפליקציות SysUI לקבל את המידע של ערוץ 50 המשודר. כדי להטמיע את התג:

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

  • קישור אל CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE.

מפני שהאפליקציות Settings ו-SysUI אינן נכללות בהיקף של Cell Broadcast עליך להטמיע את השינויים ב-SystemUI או באפליקציית ההגדרות כדי לספק תמיכה מקצה לקצה. לעיון בהטמעה של קובצי עזר, הגדרות Cell BroadcastService app.

התאמה אישית

לא ניתן לשנות באופן ישיר את קוד המקור של המודול Cell Broadcast, אבל אפשר להשתמש בשכבות-על של משאבי זמן ריצה (RRO) עד הפעלה (או השבתה) של פרמטרים (לדוגמה, אפשר להתאים אישית את הצבע של ההתראות במאפיינים בתיבות דו-שיח). כדי לשנות את ערכי ברירת המחדל של הפרמטרים שנעשה בהם שימוש במודול Cell Broadcast, משנים את שם חבילת היעד ל- com.android.cellbroadcastreceiver כמו כן:

  • רשימה של הגדרות שאפשר להגדיר בשכבת-על זמינה overlayable.xml

  • להטמעה לדוגמה, אפשר לעיין במאמר RROSampleTestApp ב-AOSP.

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

העבר נתונים

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

במכשירים ששודרגו לשימוש במודול Cellcast, המודול מאחזר נתונים מ-AOSP LegacyCellbroadcastApp או APK של Cell BroadcastContentProvider בהגדרת OEM (יצרן ציוד מקורי) באמצעות רשות cellbroadcast-legacy.

שימוש ב-APK של Cell BroadcastContentProvider שהוגדר על ידי ה-OEM (יצרן הציוד המקורי)

כשמגדירים APK של Cell BroadcastContentProvider, צריך לוודא שה-APK צריך לעמוד בדרישות הבאות מפרט.

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

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

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

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

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

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

  • רשות: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI. עמודות של שאילתות הצגת רשימה של מאפייני הודעות נתמכים למודול Cellcast. איסוף נתונים (ממסד הנתונים) ל-method ContentProvider.query.

דוגמה להטמעה של CellBroadcastContentProvider,: LegacyCellBroadcastContentProvider.

בדיקה

הכלי לבדיקת התאימות של Android (CTS) מאמת את הפונקציונליות של ממשקי API של המערכת התלויים באפליקציות. ניתן גם להפעיל מודול Cell Broadcast unit tests/testappsp

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

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

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

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

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

יצירת קשר

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