You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AirWatch API获取Android应用versionName及排查调用问题

解决AirWatch API获取Android应用versionName的问题

我来帮你梳理下这个问题,结合你尝试过的接口调用情况,给出明确的解决方案:

一、对应API的服务名称

你要找的获取设备上Android应用versionName的接口,在AirWatch的体系里是设备已安装应用查询接口,核心可用的端点有两个:

  • 通过设备ID直接查询:/api/mdm/devices/{deviceId}/apps
  • 通过设备标识(序列号、UDID等)查询:/api/mdm/devices/apps

二、你的接口调用问题分析

你之前尝试的几个请求出现异常,主要是参数错误或者端点使用细节没注意:

  • 第一个请求https://host/api/mdm/devices/apps?searchby=idTest&id=1520&pageTest=1:这里有两个明显错误:searchby没有idTest这个合法取值,正确的设备ID查询应该用searchby=Id;另外分页参数是page不是pageTest,这两个错误导致接口无法解析你的请求,自然返回空数据。
  • 第二个请求https://host/api/mdm/devices/1520/apps?page={page}&pagesize=1:这个端点本身是正确的(通过设备ID查询应用),如果返回空,大概率是这几个原因:设备ID1520对应的设备不存在/未被AirWatch管理、你的API账号没有该设备的应用读取权限,或者{page}没有替换成具体数值(比如page=1)。
  • 第三个请求返回的其实不是无关数据——你看到的"Version":"8.21.1.0"就是Android应用的versionName!AirWatch API把Android应用的versionName映射成了Version字段,BuildVersion则对应versionCode。你觉得数据无关,可能是查询的序列号R10QA7AL不是你目标设备的,或者你需要过滤出AirWatch托管的应用(看IsManaged字段)。

三、正确的调用示例

1. 通过设备ID查询应用版本

GET https://host/api/mdm/devices/1520/apps?page=1&pagesize=100

这个请求会返回设备ID为1520的设备上所有已安装应用,每个条目里的Version字段就是你要的versionName。

2. 通过设备序列号查询应用版本

GET https://host/api/mdm/devices/apps?searchby=Serialnumber&id=你的目标设备序列号&page=1&pagesize=100

注意:searchby的取值必须是AirWatch支持的枚举值,比如Id、Serialnumber、Udid、Macaddress,不能自定义。

四、额外注意事项

  • 权限验证:一定要在请求头里携带正确的授权信息(比如Bearer Token或者Basic Auth,具体看你的AirWatch实例配置),权限不足会导致接口返回空或者错误。
  • 过滤托管应用:如果你只需要AirWatch部署的托管应用,可以尝试添加参数IsManaged=true(不同API版本支持情况可能有差异,建议参考你的AirWatch版本对应文档)。
  • 字段对应:再次确认下,Android应用的versionName对应返回结果里的Version字段,versionCode对应BuildVersion字段(部分应用可能没有这个值)。

内容的提问来源于stack exchange,提问作者Arvind Chourasiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:19:38