如何无需PubSub通过Android Management API获取EMM中新注册安卓设备的DeviceId
通过Android Management API获取批量注册设备的DeviceId(无需PubSub)
当你用同一个注册token批量注册设备后,不用PubSub也能通过以下两种方式获取对应设备的DeviceId:
方法1:按注册token筛选设备列表
直接调用enterprises.devices.list接口,通过筛选条件定位到关联目标注册token的设备:
- 构造请求时,传入你的企业ID(格式为
enterprises/LC00xxxx) - 使用
filter参数指定筛选规则:enrollmentTokenName:"enterprises/{enterpriseId}/enrollmentTokens/{tokenId}",替换其中的enterpriseId和tokenId为实际值 - 接口返回的每个设备对象中,
deviceId字段就是你要的设备ID,同时name字段的后半段(如enterprises/LC00xxxx/devices/xxxxxx里的xxxxxx)也是DeviceId
示例curl命令:
curl \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ "https://androidmanagement.googleapis.com/v1/enterprises/ENTERPRISE_ID/devices?filter=enrollmentTokenName%3A%22enterprises%2FENTERPRISE_ID%2FenrollmentTokens%2FTOKEN_ID%22"
方法2:按关联策略筛选设备列表
如果你的注册token绑定了特定的设备策略,也可以通过策略来筛选设备:
- 确认注册token对应的策略ID(可通过
enterprises.enrollmentTokens.get接口获取token详情,查看policyName字段) - 调用
enterprises.devices.list时,设置filter为policyName:"enterprises/{enterpriseId}/policies/{policyId}" - 同样从返回的设备对象中提取
deviceId字段即可
注意事项
- 确保你的访问令牌拥有
androidmanagement.enterprises.devices.readonly权限 - 设备注册完成后,API可能需要几秒到几分钟的同步时间,若刚注册完查询不到,建议稍后重试
内容的提问来源于stack exchange,提问作者Rohini Patil
相关产品推荐
相关产品推荐

