Google CellBroadcast

本文详细介绍了Android R及以上版本中Google CellBroadcast的背景、模块组成、消息流程,以及如何通过Runtime Resource Overlays(RRO)进行定制。内容涵盖了CellBroadcast Service和Receiver的职责,以及设置解析,包括各种警报的启用、隐藏和控制通道。
摘要由CSDN通过智能技术生成

一、背景

Android R及以上版本,必须集成Google Cellbroadcast。
CellBroadcast模块由两部分组成:

  • CellBroadcastService
    此服务支持CellBroadcast SMS解码,无线紧急警报(WEA)3.0的地理围栏,消息重复检查以及向应用程序广播消息。
  • CellBroadcastReceiver:
    默认系统应用程序,用于处理紧急/非紧急警报,并根据运营商和区域法规向最终用户显示信息。

CellBroadcastService和CellBroadcastReceiver应用程序包含在单个APEX文件(com.google.android.cellbroadcast)中,OEMs无法修改。但是OEMs可以使用runtime resource overlays覆盖(RRO)自定义配置。
在Android R中,CellBroadcast模块在package/app/CellBroadcastReceiver中包含代码,并将现有框架类迁移到package/modules/CellBroadcastService。也就是说,可以在这两个部分查看代码,修改无效。

二、模块介绍

小区广播(CB)是一对多的地理定位和地理防御消息服务,旨在将消息同时发送到定义区域中的多个移动电话用户。
当警报信息到来,设备会立即弹出警报框:
在这里插入图片描述

三、CellBroadcast消息流程

1)无线电接口层(RIL)向InBoundSMSHandler通知CDMA / GSM CellBroadcast SMS。
2)framework将CellBroadcast SMS转发到CBS模块,以解析和处理传入的消息。
3)处理完消息后,CellBroadcastService会将intent转发到系统默认的CellBroadcastReceiver应用程序。
4)CellBroadcastReceiver应用程序将消息显示给用户。

四、CellBroadcast RRO

OEMs无法直接修改源码,但是可以参考RROSampleTestApp使用runtime resource overlays覆盖(RRO)自定义配置(仅overlayable.xml文件中定义的)。
注意事项:必须设置targetPackage为“com.google.android.cellbroadcastreceiver”

五、CellBroadcast Settings解析

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    
    <Preference android:key="alerts_header" 
                android:summary="@string/alerts_header_summary"
                android:selectable="false" />

    <!-- Allow alerts -->
    <SwitchPreference android:defaultValue="@bool/master_toggle_enabled_default"
                      android:key="enable_alerts_master_toggle"
                      android:summary="@string/enable_alerts_master_toggle_summary"
                      android:title="@string/enable_alerts_master_toggle_title" />

    <!--Alerts -->
    <PreferenceCategory android:title="@string/emergency_alerts_title"
                        android:key="category_emergency_alerts">

        <!-- Emergency alerts -->
        <SwitchPreference android:defaultValue="@bool/emergency_alerts_enabled_default"
                          android:key="enable_emergency_alerts"
                          android:summary="@string/enable_emergency_alerts_message_summary"
                          android:title="@string/enable_emergency_alerts_message_title" />

        <!-- Presidential alerts -->
        <SwitchPreference android:defaultValue="true"
                          android:enabled="false"
                          android:key="enable_cmas_presidential_alerts"
                          android:summary="@string/enable_cmas_presidential_alerts_summary"
                          android:title="@string/enable_cmas_presidential_alerts_title"/>

        <!-- Extreme threats -->
        <SwitchPreference android:defaultValue="@bool/extreme_threat_alerts_enabled_default"
                          android:key="enable_cmas_extreme_threat_alerts"
                          android:summary="@string/enable_cmas_extreme_threat_alerts_summary"
                          android:title="@string/enable_cmas_extreme_threat_alerts_title" />

        <!-- Severe threats -->
        <SwitchPreference android:defaultValue="@bool/severe_threat_alerts_enabled_default"
                          android:key="enable_cmas_severe_threat_alerts"
                          android:summary="@string/enable_cmas_severe_threat_alerts_summary"
                          android:title="@string/enable_cmas_severe_threat_alerts_title" />

        <!-- AMBER alerts -->
        <SwitchPreference android:defaultValue="@bool/amber_alerts_enabled_default"
                          android:key="enable_cmas_amber_alerts"
                          android:summary="@string/enable_cmas_amber_alerts_summary"
                          android:title="@string/enable_cmas_amber_alerts_title" />

        <!-- Public safety messages -->
        <SwitchPreference android:defaultValue="@bool/public_safety_messages_enabled_default"
                          android:key="enable_public_safety_messages"
                          android:summary="@string/enable_public_safety_messages_summary"
                          android:title="@string/enable_public_safety_messages_title" />

        <!-- State and local tests -->
        <SwitchPreference android:defaultValue="@bool/state_local_test_alerts_enabled_default"
                          android:key="enable_state_local_test_alerts"
                          android:summary="@string/enable_state_local_test_alerts_summary"
                          android:title="@string/enable_state_local_test_alerts_title" />

        <!-- Test alerts -->
        <SwitchPreference android:defaultValue="@bool/test_alerts_enabled_default"
                          android:key="enable_test_alerts"
                          android:summary=
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值