
# 获取云机上正在运行的应用列表
#### 方法名称
void getRunningApps(GetAppsReq getAppsReq)
#### 功能描述
获取云机上正在运行的应用列表。该方法用于查询当前在云机上运行的应用程序。
#### 参数说明
| 字段名        | 类型         | 说明       |
|:---|:---|:---|
| getAppsReq | GetAppsReq | 获取应用请求对象 |
   
getAppsReq结构
| **字段名**  | **类型**      | **必填** | **说明**                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| appType  | AppTypeEnum | 是      | 应用类型枚举： - SYSTEM_APP：系统应用  - THIRD_APP：第三方应用  - BOTH：全部   |
| quality  | Integer     | 否      | 图标质量参数，取值范围0-100，默认值为100，建议设为70\~85平衡清晰度和大小                                                                                                                                                                                                                                                               |
| pageNum  | Integer     | 是      | 分页页码，从1开始                                                                                                                                                                                                                                                                                                 |
| pageSize | Integer     | 是      | 分页大小，最大20                                                                                                                                                                                                                                                                                                 |
| needIcon | Boolean     | 否      | 是否返回应用图标，true返回icon和iconUrl字段，默认值：false                                                                                                                                                                                                                                                                   |
   
#### 返回值
无
#### 回调参数
- AppOperateResponse结构
  
  | **字段**     | **类型**     | 说明                                                                                |
  |:---|:---|:---|
  | error_code | String     | 错误代码，见[附录](https://support.huaweicloud.com/sdkreference-koophone/kp_10_0107.html) |
  | error_msg  | String     | 错误信息，见[附录](https://support.huaweicloud.com/sdkreference-koophone/kp_10_0107.html) |
  | data       | GetAppsRsp | 应用信息列表，可能为空列表                                                                     |
     
  
- GetAppsRsp结构
  
  | **字段名**    | **类型**          | **说明**              |
  |:---|:---|:---|
  | appList    | List\<AppInfo\> | 应用列表（详见下方AppInfo结构） |
  | totalCount | Integer         | 应用总数（用于分页）          |
  | pageNum    | Integer         | 当前页码                |
  | pageSize   | Integer         | 当前分页大小              |
     
  

- AppInfo结构
  
  | **字段名**     | **类型**  | **说明**                                          |
  |:---|:---|:---|
  | appName     | String  | 应用名称                                            |
  | packageName | String  | 应用包名                                            |
  | icon        | String  | 应用图标原始字节（WebP格式），若needIcon=false或未获取到则为null     |
  | iconUrl     | String  | 优先使用图标下载地址（WebP格式），无值则用icon                     |
  | isReady     | Boolean | 应用是否处于可运行状态                                     |
  | snapshot    | String  | 运行应用截图原始字节（WebP格式），部分场景（例如不同意应用协议）可能为空，需要自行补充图片 |
     
  
 
#### 调用示例
```
// 1. 注册回调
CloudPhoneClient.setAppCallback(new  CloudPhoneClient.Callback.AppCallback() {
    @Override
    public void onGetInstalledApps(AppOperateResponse<GetAppsRsp> response) {
        if (response.isSuccess())  {s
            GetAppsRsp data = response.getData(); 
            for (AppInfo app : data.getAppList())  {
                Log.d("APP", "Name: " + app.getAppName()  + ", Icon URL: " + app.getIconUrl()); 
            }
        } else {
            Log.e("APP", "Error: " + response.getErrorMessage()); 
        }
    }
});
// 2. 构建请求
GetAppsReq req = new GetAppsReq();
req.setAppType(GetAppsReq.AppTypeEnum.BOTH);  // 获取所有应用 
req.setQuality(80);                           // 图标质量设为80 
req.setPageNum(1);                            // 第一页
req.setPageSize(10);                          // 每页10条 
req.setNeedIcon(true);                        // 返回图标 
// 3. 调用接口
getRunningApps(req);
```
#### 响应示例
```
{
  "appList": [
    {
      "appName": "Chrome",
      "packageName": "com.android.chrome", 
      "iconUrl": "https://example.com/icon_chrome.webp", 
      "isReady": true,
      "snapshot": "[WebP字节数据]"
    },
    {
      "appName": "Settings",
      "packageName": "com.android.settings", 
      "icon": "[WebP字节数据]",
      "isReady": true,
      "snapshot": "[WebP字节数据]"
    }
  ],
  "totalCount": 42,
  "pageNum": 1,
  "pageSize": 10
}
```
