已配置AMAPI通知仍无法获取keyedAppStates数据,求解决方案
问题:无法从Android Management API获取keyedAppStates数据
我正尝试通过keyedAppStates从Reports应用获取应用反馈,已完成相关配置,但目前仅能接收到ApplicationEvent事件,keyedAppStates始终无数据返回。
已配置的代码
企业通知配置请求
const EnterPriseRequest = { name: enterpriseName, resource: { enabledNotificationTypes: ["STATUS_REPORT"], // Valid types pubsubTopic:`projects/${project_id}/topics/MyTopic`, contactInfo, }, updateMask: 'enabledNotificationTypes,contactInfo', }; androidManagementClient.enterprises.patch(enterPriseRequest)
设备信息查询代码
androidManagementClient.enterprises.devices.get({ name: deviceId, });
当前状态
已成功接收应用事件:
"events": [ { "object (ApplicationEvent)" } ],
但keyedAppStates字段无数据返回。
解决方案建议
- 确认Reports应用是否实现上报逻辑:
keyedAppStates的数据依赖应用主动调用AppFeedbackManager接口提交状态,需检查应用是否完成了这部分开发,正确上报键值对信息。 - 补充通知类型配置:当前仅启用了
STATUS_REPORT,需添加APP_FEEDBACK类型——这是接收应用主动上报的keyedAppStates的专属通知类型。修改后的企业请求配置如下:const EnterPriseRequest = { name: enterpriseName, resource: { enabledNotificationTypes: ["STATUS_REPORT", "APP_FEEDBACK"], pubsubTopic:`projects/${project_id}/topics/MyTopic`, contactInfo, }, updateMask: 'enabledNotificationTypes,contactInfo', }; - 验证设备与应用状态:确保目标设备已绑定到配置的企业,且Reports应用已安装并正常运行。
- 调整查询时机:
keyedAppStates仅在应用上报后才会存在,建议在应用触发上报操作后再调用设备查询接口,或通过Pub/Sub订阅APP_FEEDBACK类型的通知直接获取数据。 - 核对权限:确认服务账号拥有Android Management API的企业管理员权限,确保能正常读取设备和应用状态数据。
内容的提问来源于stack exchange,提问作者maranR
相关产品推荐
相关产品推荐

