המודול של CellCastcast מצמצם את המאמצים שחוזרים על עצמם עבור יצרני ציוד מקורי (OEM) מצמצמת את הפיצול בסביבה העסקית של Android ומספקת מודל עקביות הדרגתי משתמשי הקצה) ועוזרת לייעל את הבדיקות של הספק אישור לדרישות שקשורות ל-Cell Broadcast (כי הקוד לא יכול שונה על ידי יצרני ציוד מקורי). המודול הזה ניתן לעדכון, כלומר הוא יכול לקבל עדכונים פונקציונליות שלא במסגרת מחזור הגרסאות הרגיל של Android.
פורמט החבילה
המודול של Cell Broadcast מכיל את השירות והאפליקציה הבאים.
השירות Cell BroadcastService תומך בפענוח של הודעות SMS בשידור סלולרי, הגדרת גבולות וירטואליים להתראה אלחוטית על מקרי חירום (WEA) 3.0, בדיקות כפילות של הודעות, ולשדר הודעות לאפליקציות. זהו מיקוד גיאוגרפי אחד לרבים שירות העברת הודעות עם גבולות וירטואליים שנועד להעביר הודעות לכמה מכשירים ניידים משתמשי טלפון באזור מוגדר, בו-זמנית. השירות מוגדר על ידי בוועדת ה-ETSI להגדרת יעדים, 3GPP, והוא חלק תקני טלקומוניקציה.
האפליקציה Cell BroadcastReceiver היא אפליקציית מערכת שמוגדרת כברירת מחדל שתטפל התראות על מקרי חירום או ללא חירום (כגון התראות על ענבר והתרעות נשיאותיות) מציג את המידע למשתמשי קצה בהתאם לספק ולאזור תקנות להגנה על מידע.
זרימת הודעות בשידור הסלולרי
האיור הבא מציג את זרימת ההודעות של CellCellcast.
איור 1. זרימת הודעות ב-Cell BroadcastReceiver
שכבת ממשק הרדיו (RIL) מודיעה ל-
InBoundSMSHandler
על CDMA/GSM SMS בשידור סלולרי.ה-framework מעביר את ה-SMS של Cell Broadcast למודול של CBS כדי לנתח לעבד את ההודעה הנכנסת.
לאחר עיבוד ההודעה, Cell BroadcastService מעבירה את הכוונה אל אפליקציית ברירת המחדל של המערכת Cell BroadcastReceiver.
האפליקציה 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.
איור 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. איסוף נתונים (ממסד הנתונים) ל-methodContentProvider.query
.
דוגמה להטמעה של CellBroadcastContentProvider,
:
LegacyCellBroadcastContentProvider
.
בדיקה
הכלי לבדיקת התאימות של Android (CTS) מאמת את הפונקציונליות של
ממשקי API של המערכת התלויים באפליקציות. ניתן גם להפעיל מודול Cell Broadcast
unit tests/testappsp
אם יצרן הציוד המקורי הפעיל את הקוד הסודי של CMAS במכשיר, המכשיר יכול לתמוך במצב ניפוי באגים עם התכונות הבאות.
התראות הבדיקה מקובצות בקטע התראות אחרות עם מתג הפעלה/כיבוי.
ההיסטוריה כוללת את כל ההודעות שהתקבלו אבל לא הוצגו, כמו הודעות כפולות או הודעות בשפה אחרת.
בהודעות מוצגות כל הפרמטרים הזמינים, כולל מספר סידורי והודעה המזהה ותאריך התפוגה.
כדי להפעיל את מצב ניפוי הבאגים, מחייגים *#*#CMAS#*#* בחייגן.
יצירת קשר
לפרטים נוספים או לשאלות לגבי המודול של Cell Broadcast, אפשר ליצור קשר עם קבוצת תמיכה בשידור הסלולרי.