Hücre Yayını

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.

CellBroadcastReceiver mesaj akışı

Şekil 1. CellBroadcastReceiver mesaj akışı

  1. Radyo arayüz katmanı (RIL), InBoundSMSHandler adlı kullanıcıyı bir CDMA/GSM hakkında bilgilendirir Hücre Yayını SMS'i.

  2. Ç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.

  3. Mesaj işlendikten sonra, CellBroadcastService niyeti şuraya yönlendirir: CellBroadcastReceiver uygulamasının sistem varsayılan uygulamasıdır.

  4. 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.

CellBroadcastReceiver uygulama ayarları menüsü

Şekil 2. CellBroadcastReceiver uygulama ayarları menüsü

Acil durum uyarısı geçmişi

Ş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:

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 TRANSLATE ContentProvider 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.