{i>CellBroadcast

Modul CellBroadcast mengurangi upaya berulang untuk OEM (yang pada gilirannya mengurangi fragmentasi di seluruh ekosistem Android dan memberikan kepada pengguna akhir) dan membantu menyederhanakan pengujian operator dan untuk persyaratan terkait CellBroadcast (karena kode tidak dapat dimodifikasi oleh OEM). Modul ini dapat diperbarui, artinya dapat menerima pembaruan untuk fungsionalitas di luar siklus rilis Android normal.

Format paket

Modul CellBroadcast terdiri dari layanan dan aplikasi berikut.

  • Layanan CellBroadcastService mendukung dekode SMS CellBroadcast, pembatasan wilayah untuk peringatan darurat nirkabel (WEA) 3.0, pemeriksaan duplikasi pesan, dan menyiarkan pesan ke aplikasi. Penargetan yang dioptimalkan adalah {i>one-to-many<i} layanan pesan dengan pembatasan wilayah yang didesain untuk mengirim pesan ke beberapa perangkat pengguna telepon, di area tertentu, pada waktu yang sama. Layanan ditentukan oleh komite GSM ETSI, 3GPP, dan merupakan bagian dari standar telekomunikasi.

  • Aplikasi CellBroadcastReceiver adalah aplikasi sistem default yang menangani peringatan darurat dan ketidakadaan (seperti peringatan amber dan presiden) serta menyajikan informasi kepada pengguna akhir berdasarkan operator dan regional peraturan.

Alur pesan CellBroadcast

Gambar berikut menunjukkan alur pesan CellBroadcast.

Alur pesan CellBroadcastReceiver

Gambar 1. Alur pesan CellBroadcastReceiver

  1. Lapisan antarmuka radio (RIL) memberi tahu InBoundSMSHandler tentang jaringan CDMA/GSM SMS CellBroadcast.

  2. Kerangka kerja ini meneruskan SMS CellBroadcast ke modul CBS untuk mengurai dan memproses pesan masuk.

  3. Setelah pesan diproses, CellBroadcastService meneruskan intent ke aplikasi CellBroadcastReceiver default sistem.

  4. Aplikasi CellBroadcastReceiver menampilkan pesan kepada pengguna.

Format modul

CellBroadcastService dan aplikasi CellBroadcastReceiver disertakan dalam file APEX tunggal (com.android.cellbroadcast), yang tersedia untuk perangkat yang menjalankan Android 11 atau yang lebih baru. Modul ini berisi kode di package/app/CellBroadcastReceiver dan memigrasikan class framework yang ada ke packages/modules/CellBroadcastService.

Dependensi modul

Modul CellBroadcast berinteraksi dengan framework hanya menggunakan @SystemApi (tanpa @hide API) dan bergantung pada library statis berikut.

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

Anda dapat menyesuaikan konfigurasi menggunakan overlay resource runtime (RRO).

Konfigurasi izin

Modul CellBroadcast ditandatangani dengan tanda tangan Google, bukan platform tanda tangan, yang berarti modul kehilangan akses ke izin tanda tangan. Sebagai gantinya, Android 11 mendefinisikan tanda tangan baru izin com.android.cellbroadcastservice.FULL_ACCESS_CELL_BROADCAST_HISTORY di dalam modul CellBroadcast; hanya paket dalam modul yang dapat memperoleh izin akses karena mereka ditandatangani dengan kunci yang sama. Izin ini memungkinkan Aplikasi CellBroadcastReceiver agar memiliki akses penuh ke database di dalam {i>CellBroadcastService<i}.

Platform memberikan runtime android.permission.READ_CELL_BROADCASTS izin akses ke aplikasi SMS sistem default untuk mengakses riwayat keadaan darurat pemberitahuan.

Mengintegrasikan modul CellBroadcast

Bagian ini menjelaskan cara mengintegrasikan modul CellBroadcast.

Mengintegrasikan dengan Setelan

Anda dapat menentukan tempat mengintegrasikan setelan CellBroadcast di aplikasi Setelan (pengguna akhir mengakses halaman setelan CellBroadcast dari Settings > Aplikasi & Notifikasi > Lanjutan > Peringatan darurat). Untuk meluncurkan aplikasi CellBroadcastReceiver dari aplikasi Settings, ubah hal berikut mengatur konfigurasi dengan nama paket com.android.cellbroadcastreceiver.

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

Melakukan integrasi dengan aplikasi pesan

Anda dapat mengintegrasikan link aplikasi ke dalam aplikasi pesan untuk membuka CellBroadcast histori pesan. Di aplikasi Perpesanan Android, ini telah diintegrasikan ke dalam Setelan > Lanjutan > Notifikasi darurat. Untuk mengintegrasikan {i>link<i} ke dalam aplikasi pesan Anda sendiri, tentukan jalur dalam aplikasi pesan, dan konfigurasikan nama komponen untuk modul CellBroadcast sebagai com.android.cellbroadcastreceiver/com.android.cellbroadcastreceiver.CellBroadcastListActivity.

Mengintegrasikan dengan kotak masuk SMS

Anda dapat mengaktifkan penayangan pesan CellBroadcast di aplikasi pesan default dengan mengganti konfigurasi berikut menggunakan overlay resource runtime.

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

Karena pemberian izin berada di luar cakupan modul {i>CellBroadcast<i}, Anda harus memberikan izin AppOpsManager.OP_WRITE_SMS ke CellBroadcast untuk menyediakan dukungan end-to-end. Untuk implementasi referensi AOSP, lihat SmsApplication.java ini patch.

Meluncurkan aplikasi CellBroadcastReceiver

Aplikasi CellBroadcastReceiver memiliki titik peluncuran berikut.

  • Menu aplikasi Setelan.

  • Aplikasi (termasuk aplikasi pihak ketiga) seperti aplikasi pesan yang ditautkan ke Histori pesan CellBroadcast.

  • (Opsional) Ikon peluncuran dari layar utama Android yang ditambahkan oleh OEM. Untuk mengetahui detailnya, lihat Menambahkan ikon peluncuran.

Setelan aplikasi CellBroadcastReceiver

Screenshot berikut menunjukkan menu setelan aplikasi CellBroadcastReceiver.

Menu setelan aplikasi CellBroadcastReceiver

Gambar 2. Menu setelan aplikasi CellBroadcastReceiver

Histori peringatan darurat

Gambar 3. Layar histori peringatan darurat

Menambahkan ikon peluncuran

Anda dapat mengaktifkan akses histori pesan CellBroadcast dari peluncur aplikasi dan melalui ikon peluncuran Anda sendiri.

  • Untuk mengaktifkan akses histori pesan dari peluncur aplikasi, ganti konfigurasi berikut menggunakan RRO.

    <item type="bool" name="show_message_history_in_launcher" />
    
  • Untuk mengganti ikon default AOSP, ganti konfigurasi berikut menggunakan RRO.

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

Mengaktifkan kode rahasia CMAS

Untuk mengaktifkan kode rahasia CMAS, *#*#CMAS#*#* (*#*#2627#*#* pada tombol nomor), aplikasi telepon harus mendengarkan kode telepon khusus dalam bentuk *#*#code#*#* dan tangani kode menggunakan metode publik sendDialerSpecialCode

Persyaratan info area: Channel 50

Channel 50 adalah saluran khusus bagi operator untuk menyiarkan terkait area (kecuali untuk MTN di Afrika Selatan). Untuk saluran ini, siarkan pesan tidak menghasilkan dialog atau notifikasi. Sebagai gantinya, siarkan pesan yang muncul di status SIM menu Setelan, atau di bilah status (untuk misalnya, menampilkan kode pos).

Implementasi Android CellBroadcastService memberikan dukungan untuk API berikut di layanan siaran seluler untuk aplikasi Setelan dan SysUI agar mendapatkan informasi {i> channel<i} siaran 50. Untuk menerapkannya, lakukan hal berikut:

  • Mendaftarkan android.telephony.action.AREA_INFO_UPDATED siaran dan mengganti nama paket penerima config_area_info_receiver_packages melalui RRO.

  • Ikat ke CellBroadcastService.CELL_BROADCAST_SERVICE_INTERFACE.

Karena aplikasi Setelan dan SysUI berada di luar cakupan CellBroadcast Anda harus menerapkan perubahan di SystemUI atau aplikasi Setelan untuk menyediakan dukungan end-to-end. Untuk implementasi referensi, lihat Setelan CellBroadcastService aplikasi.

Penyesuaian

Anda tidak dapat secara langsung memodifikasi kode sumber dari modul CellBroadcast, tetapi Anda dapat menggunakan overlay resource runtime (RRO) ke aktifkan (atau nonaktifkan) parameter (misalnya, Anda dapat menyesuaikan warna notifikasi dan dimensi pada dialog). Untuk mengganti nilai default parameter yang digunakan dalam modul CellBroadcast, ubah nama paket target menjadi com.android.cellbroadcastreceiver. Selain itu:

Jika implementasi tersebut tidak memiliki resource terjemahan string UI atau jika terjemahannya tidak sesuai harapan, Anda dapat mengganti terjemahan menggunakan RRO atau bekerja sama dengan tim penerjemahan Google ke terjemahan string ke modul CellBroadcast. Jika Anda mengganti terjemahan resource, Google harus mengekspos string tersebut dalam overlayable.xml agar penggantian. Jika Anda memerlukan konfigurasi lainnya untuk penyesuaian UI, hubungi grup dukungan CellBroadcast.

Migrasikan data

Android 11 menyertakan aplikasi CellBroadcast lama, yang adalah mekanisme untuk mempertahankan dan memigrasikan data aplikasi (termasuk setelan pengguna dan histori peringatan darurat) untuk perangkat yang diupgrade ke modul CellBroadcast. Implementasi Android yang menggunakan modul CellBroadcast harus menyertakan aplikasi CellBroadcast lama dalam build-nya untuk migrasi data. Jika menggunakan solusi CellBroadcast khusus, Anda harus mendefinisikan CellBroadcastContentProvider APK untuk menyimpan data (Anda dapat menghapus APK siaran sel lama dalam rilis berikutnya).

Pada perangkat yang diupgrade untuk menggunakan modul CellBroadcast, modul tersebut mengambil data dari menu AOSP LegacyCellBroadcastApp APK CellBroadcastContentProvider yang ditentukan OEM melalui Otoritas cellbroadcast-legacy.

Menggunakan APK CellBroadcastContentProvider yang ditentukan OEM

Saat menentukan APK CellBroadcastContentProvider, APK harus mengikuti spesifikasi produk.

  • APK adalah APK headless yang hanya menampilkan konten database-nya dan SharedPreferences melalui ContentProvider dengan otoritas cellbroadcast-legacy, dan tidak dapat diakses ke aplikasi pihak ketiga.

  • APK dikembangkan dan dimiliki oleh OEM, tempat OEM dapat terus menghosting skema API tersembunyinya.

Untuk memigrasikan SharedPreferences ke modul CellBroadcast, APK CellBroadcastContentProvider harus mendukung ContentProvider.call) dengan parameter berikut:

  • Otoritas: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI
  • Metode: @SystemAPI CellBroadcast.CALL_METHOD_GET_PREFERENCE
  • Arg: @SystemAPI CellBroadcast.Preference

    Ini adalah daftar kunci preferensi bersama yang didukung untuk CellBroadcast ruang lingkup modul ini. Data berasal dari SharedPreferences untuk ContentProvider.call .

Untuk memigrasikan histori pesan ke modul CellBroadcast, metode APK CellBroadcastContentProvider harus mendukung ContentProvider.query dengan parameter berikut:

  • Otoritas: @SystemAPI CellBroadcast.LEGACY_CONTENT_URI. Kolom kueri menampilkan daftar properti pesan yang didukung untuk modul CellBroadcast. Mengambil data (dari database Anda) untuk metode ContentProvider.query.

Untuk implementasi referensi untuk CellBroadcastContentProvider,, lihat LegacyCellBroadcastContentProvider.

Pengujian

Compatibility Test Suite (CTS) Android memverifikasi fungsi API sistem yang bergantung pada aplikasi. Anda juga dapat menjalankan modul CellBroadcast unit tests/testappsp

Jika OEM telah mengaktifkan kode rahasia CMAS untuk perangkat, maka perangkat Anda dapat mendukung mode debug dengan fitur berikut.

  • Notifikasi pengujian dikelompokkan dalam Notifikasi Lainnya dengan tombol aktif/nonaktif.

  • Histori mencakup semua pesan yang diterima tetapi tidak ditampilkan, seperti duplikasi atau pesan dalam bahasa lain.

  • Pesan menampilkan semua parameter yang tersedia, termasuk nomor seri, pesan ID, dan tanggal habis masa berlaku.

Untuk mengaktifkan mode debug, tekan *#*#CMAS#*#* di telepon.

Kontak

Untuk detail atau pertanyaan lebih lanjut tentang modul CellBroadcast, hubungi Grup dukungan CellBroadcast.