RCS Google 信息归档

背景

本文档概述了如何在 Google 信息中集成、测试和验证 RCS 归档功能。

解决方案概览

  • 客户端归档:归档供应商需要开发一款 Android 应用,供 IT 管理员部署到其受管理设备上。
  • 由“Google 信息”提供支持:此功能要求将“Google 信息”设为默认即时通讯应用。IT 管理员可以使用 Android Enterprise 控制功能来强制执行此默认设置。
  • 需要 Android Enterprise:此功能仅适用于完全受管理设备。

工作流程

RCS 消息归档工作流程
图 1. RCS 归档工作流。
  1. IT 管理员使用 Android Enterprise 部署归档应用。
  2. 可选:IT 管理员使用 Android Enterprise 控制以编程方式配置归档应用。
    • 必需:
    • 建议:
      • 禁止用户控制 Google 信息和归档应用
      • IT 管理员强制将“Google 信息”设为默认 SMS/RCS 客户端
      • (可选)如果归档解决方案支持 MCM,IT 管理员也可以使用 MCM 预注册归档应用
  3. IT 管理员使用 MCM 在 Google 信息中启用归档功能。
  4. Google 信息会在消息事件发生时将消息数据写入 Android。 消息事件是指以下情况之一:发送消息、接收消息、修改消息或删除消息。
  5. Google 信息会通知归档应用新的消息事件,包括 RCS 和短信/彩信消息。
  6. 归档应用从 Telephony 提供程序读取消息数据。
  7. 归档应用会批量处理更新,然后将其发送到服务器。

实现

Google 信息 MCM 架构

归档功能在 Google 信息中使用 messages_archival 键进行配置,该键接受字符串值,供管理员按软件包名称指定归档应用。如果该值为空、null 或不存在相应键,则停用归档。如果指定了该值,则启用归档功能,并且 Google 信息会在消息事件发生时向指定的软件包名称发送明确的广播。

发送给归档应用的通知

  • 向指定的归档应用发送显式广播,操作为:GOOGLE_MESSAGES_ARCHIVAL_UPDATE
  • 在某些情况下,消息 URI 包含在广播 extra 中,可用于提取触发广播的消息:com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI

归档应用要求

必需

  • 声明 FOREGROUND_SERVICE 权限
  • 在清单中声明前台服务,其中包含用于归档更新广播的 intent 过滤器,并已授予权限,以确保只有 Google 信息可以启动该服务。
<service
        android:enabled="true"
        android:foregroundServiceType="shortService"
        android:name=".TestService"
        android:exported="true"
        android:permission="android.permission.WRITE_SMS">
      <intent-filter>
        <action android:name="GOOGLE_MESSAGES_ARCHIVAL_UPDATE" />
      </intent-filter>
</service>
  • 实现该服务以处理 intent、从电话服务读取数据,并通过比较电话服务的前一状态与当前状态来确定消息事件的类型,然后缓存要上传到归档服务后端的相应消息事件以及电话服务的更新状态,以便在下一个事件中进行比较。

推荐

  • 使用 JobScheduler 将消息事件批量更新到服务器。

    • IT 管理员可以保证您的应用不会被用户终止或应用数据不会被用户删除,从而确保您的批量更新能够按预期进行。
    • 将前台服务时间缩短到仅满足关键归档要求,可最大限度地减少对用户体验和系统健康状况的影响。
  • 使用 MCM(如消息 MCM 架构中所述)以编程方式配置应用,这样用户就不需要手动登录或指定服务器注册详细信息。

测试

如需测试您的实现,请使用 TestDPC 或您首选的 EMM 客户端。