设置 Pub/Sub 通知

借助 Pub/Sub 通知,您可以接收有关新注册的设备、设备报告和最近发布的命令的提醒。

如需设置 Pub/Sub 通知,您需要启用 Pub/Sub API 并创建主题。如需接收发布到某个主题的消息,请创建对该主题的订阅。订阅将主题与负责接收和处理发布到该主题的消息的订阅者应用关联起来。创建订阅后,您需要授予 Android Device Policy 向您的主题发布消息的权限。

1. 为您的项目启用 Pub/Sub API

如需了解如何启用 Pub/Sub API,请参阅控制台快速入门指南。确保您选择的项目已启用 Android Management API 的项目相同。

2. 创建主题

启用 API 后,您需要创建一个主题,以便 Android Device Policy 可以将通知发布到该主题。您可以通过以下两种方式创建主题:

a. 在 Google Cloud 控制台中手动操作。
b. 使用 Pub/Sub API(请参阅创建主题方法)。

创建主题后,请记下主题名称。

3. 创建订阅

订阅会捕获发布到给定主题的消息流。您可以通过以下两种方式创建订阅:

a. 在 Google Cloud 控制台中手动操作。
b. 使用 Pub/Sub API(请参阅创建订阅方法)。

4. 向 Android Device Policy 授予向您的主题发布消息的权限

您需要向 android-cloud-policy@system.gserviceaccount.com 授予向您的主题发布消息的权限。您可以通过以下两种方式授予发布权:

a. 在 Google Cloud 控制台中手动操作。

  • 将 android-cloud-policy@system.gserviceaccount.com 添加为主题的成员。
  • 依次点击选择角色 > Pub/Sub > Pub/Sub 发布者

b. 使用 Pub/Sub API(请参阅通过 IAM API 控制访问权限

  • serviceAccount:android-cloud-policy@system.gserviceaccount.com 添加到 members
  • role 设置为 roles/pubsub.publisher

5. 更新企业版以支持通知

如果您要支持的通知是 ENTERPRISE_UPGRADE(始终受支持),请跳过此步骤。

如需将企业通知与您创建的主题相关联,请调用 enterprises.patch 并指定以下参数:

  • pubsubTopic:您的 Pub/Sub 主题的名称,格式为 projects/{project}/topics/{topic}
  • enabledNotificationTypes:包含您想要接收的所有通知类型

6. 使用 Pub/Sub API 获取通知

订阅可以使用推送或拉取机制来传送消息。 如需了解如何通过这两种机制接收通知,请参阅 Pub/Sub 订阅者指南

消息格式

消息采用 PubsubMessage 的形式。消息的 attributes 字段包含一个属性,该属性的键为 notificationType,值设置为触发消息的通知类型(例如 ENROLLMENT)。消息的 data 字段包含已更新的资源的 JSON 表示形式,编码为 UTF-8 字符串。通知及其对应的资源类型如下所示:

  • COMMAND 通知使用“操作”资源类型。
  • USAGE_LOGS 通知使用 UsageLogEvent 资源类型。
  • ENROLLMENTSTATUS_REPORT 通知使用 Device 资源类型。
  • ENTERPRISE_UPGRADE 通知使用资源类型 EnterpriseUpgradeEvent

在企业版中设置 pubsubTopic 时,系统会发布一条初始消息,并将 notificationType 设置为 test。此消息用于验证 Android Device Policy 是否具有主题的发布权限,应忽略。

预期延迟时间

企业版升级事件应立即发送。

快速连续发生的本地设备事件会进行批处理,并通过单个 Pub/Sub 消息报告给 EMM。

活动类型 设备端事件与相应 EMM 通知之间的预期延迟时间1
高优先级的键控应用状态 立即,每分钟最多一份报告
标准优先级键控应用状态 1 分钟内
在配置期间与应用相关的事件,适用于安装状态由 IT 管理员定义的应用2 在其他相关配置事件发生后的一分钟内
在配置后,与应用相关的事件(对于安装状态由 IT 管理员定义的应用)。 5 分钟内
在配置期间和配置后,与应用相关的事件(对于安装状态由员工定义的3应用) 60 分钟内
其他设备端应用事件 60 分钟内

  1. 基于受控情况的最佳努力目标。实际延迟时间可能会因各种设备和环境因素而异。 

  2. 政策中强制执行的应用的 InstallTypeFORCE_INSTALLEDBLOCKEDREQUIRED_FOR_SETUPPREINSTALLEDKIOSK。 

  3. 可用应用的 InstallTypeAVAILABLEINSTALL_TYPE_UNSPECIFIED。