更新时间:2026-05-22 GMT+08:00
分享

获取云机上已安装的应用列表

方法名称

void getInstalledApps(GetAppsReq getAppsReq)

功能描述

获取云机上已安装的应用列表。该方法用于查询云机上已安装的应用程序。

参数说明

字段名

类型

说明

getAppsReq

GetAppsReq

获取应用请求对象

getAppsReq结构

参数名

类型

说明

appType

AppTypeEnum

应用类型筛选,必填。枚举值:

  • SYSTEM_APP:系统应用
  • THIRD_APP:第三方应用
  • BOTH:全部

quality

Integer

图标质量参数,选填。取值范围0-100,默认100,建议设为70~85以平衡清晰度与大小

pageNum

Integer

分页页码,必填。从1开始,需配合pageSize使用

pageSize

Integer

分页大小,必填。最大支持20条/页

needIcon

Boolean

是否返回图标,必填。true返回图标数据/URL,false不返回图标相关字段

返回值

回调参数

字段

类型

说明

error_code

String

状态码,0表示成功

error_msg

String

错误详情

data

GetAppsRsp

磁盘使用数据对象

回调接口通过CloudPhoneClient.setAppCallback(CloudPhoneClient.Callback.AppCallback callback)注册,回调参数为AppOperateResponse<GetAppsRsp>,其中GetAppsRsp结构如下:

参数名

类型

说明

appList

List

应用列表(分页数据)

totalCount

Integer

符合筛选条件的应用总数

pageNum

Integer

当前分页页码(与请求参数一致)

pageSize

Integer

当前分页大小(与请求参数一致)

CloudAppInfo应用详情结构如下:

参数名

类型

说明

appName

String

应用名称,如“微信”、“设置”

packageName

String

应用包名(唯一标识),示例:com.tencent.mm

icon

String

WebP格式图标原始数据Base64编码,仅当needIcon=true时可能返回,null表示无数据

iconUrl

String

WebP格式图标URL,端侧优先使用此字段,无值时fallback到icon字节数组

isReady

Boolean

应用是否准备就绪(可启动状态)

  • true:应用可正常使用
  • false:未安装完成或异常状态

versionName

String

应用外部版本号,示例:1.1.1

versionCode

long

应用内部版本号,示例:111

size

long

应用大小,示例:1048

调用示例

/ 1. 创建请求对象并设置参数 
GetAppsReq req = new GetAppsReq(); 
req.setAppType(AppTypeEnum.THIRD_APP);  // 筛选第三方应用 
req.setQuality(80);  // 图标质量设为80(平衡清晰度与大小) 
req.setPageNum(1);  // 查询第1 
req.setPageSize(10);  // 每页10条数据 
req.setNeedIcon(true);  // 需要返回图标 
 
// 2. 注册回调接口(建议在初始化时注册一次) 
CloudPhoneClient.setAppCallback(new  CloudPhoneClient.Callback.AppCallback() { 
    @Override 
    public void onGetInstalledApps(AppOperateResponse<GetAppsRsp> response) { 
        if (response.isSuccess())  { 
            GetAppsRsp rsp = response.getData();  
            List<CloudAppInfo> apps = rsp.getAppList();  
            // 处理应用列表数据(如展示名称、包名、图标等) 
            for (CloudAppInfo app : apps) { 
                String appName = app.getAppName();  
                String packageName = app.getPackageName();  
                String iconUrl = app.getIconUrl();  // 优先使用URL 
                byte[] iconBytes = app.getIcon();  // URL为空时使用字节数组 
                boolean isReady = app.getIsReady();  
                // ... 业务逻辑处理 
            } 
        } else { 
            // 处理接口调用失败(如网络异常、参数错误等) 
            String errorMsg = response.getErrorMsg();  
            int errorCode = response.getErrorCode();  
        } 
    } 
}); 
 
// 3. 调用接口 
CloudPhoneClient.getInstalledApps(req); 

响应示例

{
"success": true,
"data": {
"appList": [
{
"appName": "微信",
"packageName": "com.tencent.mm",
"icon": null, // 当iconUrl存在时,icon可能为null
"iconUrl": "https://example.com/icons/wechat.webp",
"versionName": "xxx",
"versionCode": 123,
"size": 1234453,
"isReady": true
},
{
"appName": "支付宝",
"packageName": "com.eg.android.AlipayGphone",
"icon": null,
"iconUrl": "https://example.com/icons/alipay.webp",
"versionName": "xxx",
"versionCode": 123,
"size": 1234453,
"isReady": true
}
// ... 更多应用(最多10条,与pageSize一致)
],
"totalCount": 25, // 符合条件的第三方应用总数
"pageNum": 1,
"pageSize": 10
},
"errorCode": 0,
"errorMsg": "success"
}

相关文档