设置 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 Platform 控制台中手动导入。
b.使用 Pub/Sub API(请参阅创建主题方法)。

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

3. 创建订阅

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

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

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

您需要授予 android-cloud-policy@system.gserviceaccount.com 发布到您的主题的权限。授予发布权的方法有两种:

a. 在 Google Cloud Platform 控制台中手动更新。

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

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

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

5. 更新企业以支持通知功能

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

  • pubsubTopic:您的 Pub/Sub 主题的名称,格式为 projects/{project}/topics/{topic}
  • enabledNotificationTypes:添加您希望接收的所有通知类型。从 ENROLLMENTSTATUS_REPORTCOMMAND 中选择。

6. 使用 Pub/Sub API 接收通知

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

消息格式

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

  • COMMAND 通知使用资源类型 Operation
  • USAGE_LOGS 通知使用资源类型 UsageLogEvent
  • ENROLLMENTSTATUS_REPORT 通知使用资源类型 Device

在 Enterprise 上设置 pubsubTopic 时,系统会发布一条初始消息,并将 notificationType 设置为 test。发送此消息是为了验证 Android Device Policy 对该主题具有发布权限,以及是否应该忽略此消息。