借助 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 Publisher。
b. 使用 Pub/Sub API(请参阅通过 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
:添加您要接收的所有通知类型。从“ENROLLMENT
”“STATUS_REPORT
”和“COMMAND
”中进行选择。
6. 使用 Pub/Sub API 接收通知
订阅可以使用推送或拉取机制来传送消息。如需了解如何通过这两种机制接收通知,请参阅 Pub/Sub 订阅者指南,了解相关准则和说明。
消息格式
消息采用 PubsubMessage 的形式。消息的 attributes
字段包含一个属性,该属性的键为 notificationType
,其值设为触发消息的通知类型(例如 ENROLLMENT
)。消息的 data
字段包含已更新资源的 JSON 表示(编码为 UTF-8 字符串)。通知及其对应的资源类型如下所示:
COMMAND
通知使用资源类型 Operation。USAGE_LOGS
通知使用资源类型 UsageLogEvent。ENROLLMENT
和STATUS_REPORT
通知使用资源类型 Device。
在 Enterprise 上设置 pubsubTopic
时,系统将发布一条初始消息,并将 notificationType
设置为 test
。发送此消息是为了验证 Android Device Policy 是否具有该主题的发布权限,以及是否应该忽略此消息。
预期延迟时间
系统会对快速连续发生的本地设备事件进行批处理,并通过一条 Pub/Sub 消息报告给 EMM。
事件类型 | 设备端事件与相应 EMM 通知之间的预期延迟时间1 |
---|---|
高优先级键控应用状态 | 立即,每分钟最多一份报告 |
标准优先级键控应用状态 | 1 分钟内 |
预配期间的应用相关事件,适用于安装状态由 IT 管理员定义的应用2 | 在其他相关配置事件发生后的一分钟内 |
预配后的应用相关事件(适用于 IT 管理员定义的安装状态的应用)。 | 5 分钟内 |
配置期间和配置之后的应用相关事件,适用于安装状态由员工定义的应用3 | 60 分钟内 |
设备上的其他应用事件 | 60 分钟内 |
-
基于受控情况的尽力目标。实际延迟时间可能会因各种设备和环境因素而异。↩
-
InstallType
已在政策中强制执行的应用:FORCE_INSTALLED
、BLOCKED
、REQUIRED_FOR_SETUP
、PREINSTALLED
和KIOSK
。↩ -
InstallType
的可用应用:AVAILABLE
、INSTALL_TYPE_UNSPECIFIED
。↩