CellBroadcast modülü, OEM'ler için tekrarlanan çalışmaları azaltır (ve böylece Android ekosistemindeki parçalanmayı azaltır ve ve operatör testini kolaylaştırmaya yardımcı olur. için bir sertifika sağlamalısınız (çünkü kod (OEM'ler tarafından değiştirilmiştir). Bu modül güncellenebilir, yani normal Android sürüm döngüsünün dışında kalan cihazlar üzerinde çalışır.
Paket biçimi
CellBroadcast modülü aşağıdaki hizmet ve uygulamadan oluşur.
CellBroadcastService hizmeti, CellBroadcast SMS kod çözmeyi destekler. kablosuz acil durum uyarısı (WEA) 3.0 için coğrafi sınır çizme, mesaj yineleme kontrolleri, ve uygulamalara mesajlar yayınlayarak. Bu yaklaşım bire-çok coğrafi hedeflemelidir ve Birden fazla mobil cihaza mesaj göndermek için tasarlanmış, coğrafi sınıra tabi mesajlaşma hizmeti Aynı anda belirli bir alandaki telefon kullanıcılarının sayısı Hizmet, ETSI GSM komitesi, 3GPP kapsamındadır ve telekomünikasyon standartları.
CellBroadcastReceiver uygulaması, aşağıdaki işlemleri gerçekleştiren varsayılan bir sistem uygulamasıdır: acil durum ve acil durum uyarıları (amber ve başkanlık uyarıları gibi) ve operatör ve bölgeye göre son kullanıcılara bilgi sunar kabul edersiniz.
Hücre yayını mesaj akışı
Aşağıdaki şekilde CellBroadcast mesaj akışı gösterilmektedir.
Şekil 1. CellBroadcastReceiver mesaj akışı
Radyo arayüz katmanı (RIL),
InBoundSMSHandler
adlı kullanıcıyı bir CDMA/GSM hakkında bilgilendirir Hücre Yayını SMS'i.Çerçeve, çözümlenmesi ve ayrıştırılması için CellBroadcast SMS'i CBS modülüne yönlendirir ve gelen iletiyi işlemeniz gerekir.
Mesaj işlendikten sonra, CellBroadcastService niyeti şuraya yönlendirir: CellBroadcastReceiver uygulamasının sistem varsayılan uygulamasıdır.
CellBroadcastReceiver uygulaması mesajı kullanıcıya gösterir.
Modül biçimi
CellBroadcastService ve CellBroadcastReceiver uygulaması
tek APEX dosyası
(com.android.cellbroadcast
), şu çalıştırılan cihazlarda kullanılabilir:
Android 11 veya sonraki sürümler Modül,
package/app/CellBroadcastReceiver
ve mevcut çerçeve sınıflarını
packages/modules/CellBroadcastService
.
Modül bağımlılıkları
CellBroadcast modülü yalnızca kararlı kullanarak çerçeveyle etkileşimde bulunur
@SystemApi
(@hide
API'leri yoktur) ve aşağıdaki statik kitaplıklara bağlıdır.
Androidx.legacy_legacy-support-v13
Androidx.recyclerview_recyclerview
Androidx.preference_preference
androidx.legacy_legacy-preference-v14
androidx.appcompat_appcompat
Yapılandırmayı, çalışma zamanı kaynak yer paylaşımlarını kullanarak özelleştirebilirsiniz (RRO'lar).
İzin yapılandırması
CellBroadcast modülü platform yerine Google imzasıyla imzalanır
imza atılır. Modül imza izinlerine erişemez.
Bunun yerine, Android 11 yeni imzayı tanımlar.
izin com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY
Hücre Yayını modülünde; yalnızca modüldeki paketler
aynı anahtarla imzalandığından emin olun. Bu izin,
içindeki veritabanına tam erişime sahip olmasını sağlamak için CellBroadcastReceiver uygulaması
CellBroadcastService'i açın.
Platform, android.permission.READ_CELL_BROADCASTS
çalışma zamanını verir
acil durum geçmişine erişmek için varsayılan sistem SMS uygulaması izni
uyarılar'ı tıklayın.
CellBroadcast modülünü entegre etme
Bu bölümde, CellBroadcast modülünün nasıl entegre edileceği açıklanmaktadır.
Ayarlar ile entegre et
Hücre Yayını ayarlarının nereye entegre edileceğine Ayarlar uygulamasında karar verebilirsiniz.
(son kullanıcılar Ayarlar >
Uygulamalar ve Bildirimler > Gelişmiş > Acil durum uyarısı). Başlatmak için
Ayarlar uygulamasından CellBroadcastReceiver uygulamasına geçmek istiyorsanız,
paket adıyla yapılandırmaları ayarlama
com.android.cellbroadcastreceiver
<!-- Cell broacast receiver package name [DO NOT TRANSLATE] -->
<string name="cell_broadcast_receiver_package">
com.android.cellbroadcastreceiver</string>
Mesajlaşma uygulamalarıyla entegrasyon
CellBroadcast'ı açmak için bir uygulama bağlantısını mesajlaşma uygulamalarına entegre edebilirsiniz
mesaj geçmişi'ne dokunun. Android Messaging uygulamasında bu işlev,
Ayarlar > Gelişmiş > Acil durum uyarısı. Bir bağlantıyı
uygulamanız varsa, mesajlaşma uygulamasında yolu tanımlayın ve
Hücre Yayını modülünün bileşen adını
com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity
SMS gelen kutusuyla entegre et
Hücre Yayını mesajlarının varsayılan mesajlaşma uygulamasında görüntülenmesini etkinleştirmek için şunları yapabilirsiniz: bu, çalışma zamanında kaynak yerleşimi kullanarak aşağıdaki yapılandırmayı geçersiz kılar.
<item type="bool" name="enable_write_alerts_to_sms_inbox" />
İzin vermek CellBroadcast modülünün kapsamı dışında olduğu için
Hücre Yayını için AppOpsManager.OP_WRITE_SMS
izni vermelisiniz
modülünü kullanarak uçtan uca destek sağlayın. AOSP referans uygulaması için:
buna SmsApplication.java
bakın
yama uygulayın.
CellBroadcastReceiver uygulamasını başlatma
CellBroadcastReceiver uygulamasında aşağıdaki başlatma noktaları bulunur.
Ayarlar uygulama menüsü.
Bir uygulama (üçüncü taraf uygulamaları dahil) Hücre Yayını mesaj geçmişi.
(İsteğe bağlı) OEM tarafından eklenen, Android ana ekranındaki bir başlatma simgesi. Ayrıntılar için Başlatma simgesi ekleme konusuna bakın.
CellBroadcastReceiver uygulama ayarları
Aşağıdaki ekran görüntülerinde CellBroadcastReceiver uygulamasının ayarlar menüsü gösterilmektedir.
Şekil 2. CellBroadcastReceiver uygulama ayarları menüsü
Şekil 3. Acil durum uyarısı geçmişi ekranı
Başlatma simgeleri ekle
Hücre yayını mesaj geçmişine erişimi uygulama başlatıcıdan etkinleştirebilirsiniz ve kendi başlatma simgeleriniz aracılığıyla ekleyebilirsiniz.
Uygulama başlatıcıdan mesaj geçmişine erişimi etkinleştirmek için yapılandırdığınızdan emin olun.
<item type="bool" name="show_message_history_in_launcher" />
AOSP varsayılan simgesini geçersiz kılmak için RRO hazırlanır.
<!-- Customize launcher icon for cellbroadcast history --> <item type="mipmap" name="ic_launcher_cell_broadcast" />
CMAS gizli kodunu etkinleştirme
CMAS gizli kodunu etkinleştirmek için, *#*#CMAS#*#* (*#*#2627#*#*
tuş takımı), numara çevirici uygulamasının özel numara çevirici kodunu şu biçimde dinlemesi gerekir:
*#*#code#*#* ve kodu herkese açık yöntemi kullanarak işleyin.
sendDialerSpecialCode
.
Alan bilgisi gereksinimi: Kanal 50
Channel 50, operatörlerin yayın alanıyla alakalı özel bir kanaldır. bilgileri (Güney Afrika'daki MTN hariç). Bu kanalda şu içeriği yayınla: bir iletişim kutusu veya bildirim görüntülenmiyor. Bunun yerine Mesajlar, Ayarlar menüsünün SIM durumunda veya durum çubuğunda (örneğin, posta kodu gösterilmektedir).
Android CellBroadcastService uygulaması aşağıdaki API'leri kullanabilirsiniz: Ayarlar ve SysUI uygulamaları için Channel 50 yayını bilgilerini al. Bunu uygulamak için aşağıdakileri yapın:
android.telephony.action.AREA_INFO_UPDATED
yayınını kaydet ve geçersiz kıl alıcı paketinin adıconfig_area_info_receiver_packages
ile RRO'dur.CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE
öğesine bağlayın.
Ayarlar ve SysUI uygulamaları, CellBroadcast'ın kapsamı dışında olduğu için modülünden sonra, değişikliklerinizi SystemUI veya Ayarlar uygulamasında uçtan uca destek sunmaktır. Referans uygulaması için bkz. CellBroadcastService Ayarları uygulamasında gösterilir.
Özelleştirme
CellBroadcast modülünün kaynak kodunu doğrudan değiştiremezsiniz, ancak
çalışma zamanı kaynak yer paylaşımlarını kullanabilir
(RRO) -
parametreleri etkinleştirin (veya devre dışı bırakın)
(örneğin, bildirimlerin rengini özelleştirebilir ve
boyutları) değiştirebilirsiniz.
CellBroadcast modülü varsa hedef paket adını
com.android.cellbroadcastreceiver
Ek bilgiler:
Yer paylaşımlı yapılandırmaların listesi için
overlayable.xml
.Örnek bir uygulama için
RROSampleTestApp
AOSP'de.
Uygulamada kullanıcı arayüzü dizesi çeviri kaynakları eksikse veya
çeviriler beklentilerinizi karşılamıyorsa çevirinin
veya Google Çeviri Ekibi'yle birlikte çalışarak
dize çevirilerini CellBroadcast modülüne çevirir. Çeviriyi geçersiz kılarsanız
kaynak kullanıyorsanız Google'ın izin vermek için bu dizeleri overlayable.xml
içinde kullanıma sunması gerekir.
geçersiz kılmayı deneyin. Kullanıcı arayüzü özelleştirmesi için daha fazla yapılandırmaya ihtiyacınız varsa
CellBroadcast destek grubuna göz atın.
Verileri taşı
Android 11'de eski bir CellBroadcast uygulaması vardır. kullanıcı ayarları ve güvenlik dahil olmak üzere uygulama verilerini korumaya ve taşımaya yönelik acil durum uyarısı geçmişleri) kaldırın. CellBroadcast modülünü kullanan Android uygulamaları şunu içermelidir: eski CellBroadcast uygulamasını kullanır. Eğer özel bir CellBroadcast çözümü kullanıyorsanız bir verileri korumak için CellBroadcastContentProvider APK'sı ( eski hücre yayını APK'sını destekler).
Hücre Yayını modülünü kullanmak üzere yeni sürüme geçirilen cihazlarda modül,
AOSP LegacyCellBroadcastApp veya
cellbroadcast-legacy
yetkili.
OEM tarafından tanımlanmış bir CellBroadcastContentProvider APK kullanın
CellBroadcastContentProvider APK'sı tanımlarken APK'nın aşağıdakilere uygun olması gerekir: özellikler.
APK, yalnızca veritabanının içeriğini gösteren gözetimsiz bir APK'dır ve
SharedPreferences
CANNOT TRANSLATEContentProvider
nesne (cellbroadcast-legacy
) ve erişilebilir değil Google Analytics 4'te tarama yapar.APK, OEM tarafından geliştirilmiş ve OEM tarafından geliştirilmiştir. OEM, API şemasını barındırması gerekir.
SharedPreferences
öğesini CellBroadcast modülüne taşımak için
CellBroadcastContentProvider APK'sı şunu desteklemelidir:
ContentProvider.call
)
yöntemini kullanabilirsiniz:
- Yetkili:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
- Yöntem:
@SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
Düzeltme:
@SystemAPI CellBroadcast.Preference
Bu, CellBroadcast için desteklenen paylaşılan tercih anahtarlarının listesidir. modülünü kullanabilirsiniz. Şu sorgu için veriler
SharedPreferences
sitesinden alındı:ContentProvider.call
yöntemidir.
Mesaj geçmişini Hücre Yayını modülüne taşımak için
CellBroadcastContentProvider APK'sı şunu desteklemelidir:
ContentProvider.query
yöntemini kullanabilirsiniz:
- Yetkili:
@SystemAPI CellBroadcast.LEGACY_CONTENT_URI
. Sorgu sütunları CellBroadcast modülü için desteklenen mesaj özelliklerini listeleme. Verileri alır (veritabanınızdan)ContentProvider.query
yöntemi için geçerlidir.
CellBroadcastContentProvider,
ile ilgili bir referans uygulaması için
LegacyCellBroadcastContentProvider
.
Test
Android Uyumluluk Test Paketi (CTS), uygulamanın işlevselliğini doğrular.
uygulamaya bağlı sistem API'leridir. Hücre Yayını modülünü de çalıştırabilirsiniz
unit tests/testappsp
.
OEM bir cihaz için CMAS gizli kodunu etkinleştirdiyse cihazınız aşağıdaki özelliklerle hata ayıklama modunu destekleyebilir.
Test uyarıları, bir açma/kapatma düğmesiyle Diğer Uyarılar altında gruplandırılır.
Geçmiş, alınan ancak gösterilmeyen tüm iletileri içerir. Örneğin, yinelenen iletiler veya başka bir dildeki iletiler.
Mesajlar; seri numarası, mesaj veya mesaj dahil olmak üzere mevcut tüm parametreleri gösterir kimlik ve son kullanma tarihi gibi.
Hata ayıklama modunu etkinleştirmek için numara çeviricide *#*#CMAS#*#* numarasını çevirin.
İletişim
Hücre Yayını modülüyle ilgili daha ayrıntılı bilgi veya sorularınız için CellBroadcast destek grubu.