华为云用户手册

  • API概览 云手机服务接口的分类与说明如表1所示。 表1 KooPhone接口说明 类型 说明 实例执行同步命令 通过该接口可以指定云机实例同步执行adb shell命令。 实例执行异步命令 通过该接口可以指定云机实例异步执行adb shell命令。 实例执行任务查询 执行异步adb shell命令后,通过此接口查询执行结果。 实例视频设置 通过此接口可以设置串流的分辨率、码率以及对应的网络格式和FPS。 实例状态批量查询 通过该接口可以指定云机实例查询状态。 实例批量重置 通过该接口可以指定云机实例进行重置。 租户实例串流前获取设备的device_token 调用该接口获取云机实例的device_token后作为鉴权信息,携带云机实例的device_id去调用反参中的信令地址(signaling_url)。
  • 前提条件 给用户组授权之前,请您了解用户组可以添加的表1,并结合实际需求进行选择。若您需要对除 KooMessage 服务之外的其它服务授权, IAM 支持服务的所有策略请参见权限策略。 表1 表1 KooMessage的系统角色或策略 系统角色/策略名称 描述 类别 依赖关系 KooMessage SA ReadOnlyAccess 智能消息服务号的只读权限。 系统策略 无。 KooMessage SA FullAccess 智能消息服务号的所有权限。 系统策略 无。 KooMessage Basic Edition CommonOperations 智能消息服务基础版的一般操作权限。 系统策略 无。 KooMessage Basic Edition Development 智能消息服务基础版的开发权限。 系统策略 无。 KooMessage Basic Edition ReadOnlyAccess 智能消息服务基础版的只读权限。 系统策略 无。 KooMessage Development 智能消息服务的开发权限。 系统策略 无。 KooMessage CommonOperations 智能消息服务的一般操作权限。 系统策略 无。 KooMessage FullAccess 智能消息服务的所有权限。 系统策略 无。 KooMessage ReadOnlyAccess 智能消息服务只读权限。 系统策略 无。 KooMessage SA CommonOperations 智能消息服务号的一般操作权限。 系统策略 无。 KooMessage Basic Edition FullAccess 智能消息服务基础版的所有权限。 系统策略 无。
  • 相关操作 添加自定义配置:填写配置名然后选择自定义时间后,参考表1填写相关参数。 添加自定义配置前,需要先填写默认配置。 最多只可添加5个自定义配置。 预览快捷键:单击对应“操作”列下的“预览”按钮,弹出“预览”对话框,可进行左右横滑,查看默认配置和自定义配置。 修改快捷键:单击对应“操作”列下的“修改”按钮,进入到“修改快捷键名称”页面,修改完成后单击“申请”,弹出“预览”框,确认内容无误后,单击“确认”。 冻结快捷键:单击对应“操作”列下的“冻结”按钮,弹出“冻结”对话框,输入冻结原因,单击“确定”。 解冻快捷键:单击对应“操作”列下的“解冻”按钮,弹出“解冻”对话框,单击“确定”。
  • 开通KooMessage服务 进入KooMessage官网首页。 登录KooMessage控制台,进入开通KooMessage服务页面。 勾选“我已阅读并同意《KooMessage服务使用声明》《短信服务使用声明》”,单击“立即开通”。 KooMessage服务只向通过认证的企业提供开通,如还未完成企业用户认证,请单击“去认证企业用户”进行认证。 如果当前账号未绑定邮箱,请单击“去绑定”,可以快速地绑定邮箱,再继续开通KooMessage服务。 绑定邮箱后,需要3个工作日审核,请耐心等待。 图1 开通KooMessage服务 开通成功后进入控制台首页,且后续直接登录使用无需再开通。
  • 创建模板 模板不能留有空帧。 短链前后都需加一个空格符号。 模板需包含文字,且不能为纯文字、纯图片、纯音频或纯视频。 根据运营商要求,模板需在0KB-1.9MB之间。 除签名外,内容中不能包含“【】”或“[]”符号。 免流、退订、取关、回退、关闭通知等贴尾信息由系统自动添加, 模板内不能含有贴尾字样。 主题中请勿输入【】或双引号,尽量避免使用特殊符号。 在“我的模板”页签,单击“新建模板”,进入到“创建模板”页面。可以单击“新建空白模板”,或选择其他9个不同的模板类型进行编辑。以下以“新建空白模板”为例。 在空白模板顶部输入框中,根据需要输入模板主题。 插入“文本”、“图片”、“音频”或“视频”。 最多可插入“文本”、“图片”、“音频”或“视频”的总数为8个。 单击页面左侧的“文本”按钮,单击“插入文本”,可以对模板进行文本插入。 在页面右侧,单击“插入参数”,可以在文本框内插入参数。 最多可插入12个参数。 需要几个参数,在此处插入几个参数,参数内容在发送信息时的手机号码Excel中进行设置。具体设置请参考:发送智能信息基础版中的说明内容。 单击文本框,左侧会出现操作栏: 单击文本框左侧,对文本内容进行位置调整; 单击文本框左侧,对文本框进行删除。 单击页面左侧的“图片”按钮,可以对模板进行图片插入。 在“公共”和“我的”列表中可以选择想要的图片。若没合适的图片,可在“我的”列,单击“网页提取”或“上传”,获取合适的图片。还可单击“批量操作”,对图片进行批量操作。 图片要求为: 最大文件大小2M 支持的格式:jpg/jpeg/png/gif 水平图像建议:1920*1080 垂直图像建议:962*1300 图片高度不应超过3000px 若为“网页提取”图片,则URL最大长度:1024个字符。 单击图片,在页面右侧会出现“编辑图片”,单击“从本地上传”可以从本地上传图片,单击“裁剪图片”,可对图片进行裁剪。 单击图片,左侧会出现操作栏: 单击图片左侧,对图片增加描述;再次单击图片左侧,对图片描述进行删除; 单击图片左侧,对增加的描述位置进行上下调整; 单击图片左侧,对图片位置进行调整; 单击图片左侧,对图片进行删除。 单击页面左侧的“音频”按钮,可以对模板进行音频插入。 在“公共”和“我的”列表中可以选择想要的音频。若没合适的音频,可在“我的”列,单击“从本地”,获取合适的音频。还可单击“批量操作”,对音频进行批量操作。 音频要求为: 最大文件大小2M 支持的格式:mp3/wav 文件名不能超过100个字符(包括扩展名) 单击音频,左侧会出现操作栏: 单击音频左侧,对音频增加描述;再次单击音频左侧,对音频描述进行删除; 单击音频左侧,对增加的描述位置进行上下调整; 单击音频左侧,对音频位置进行调整; 单击音频左侧,对音频进行删除。 单击页面左侧的“视频”按钮,可以对模板进行视频插入。 在“公共”和“我的”列表中可以选择想要的视频。若没合适的视频,可在“我的”列,单击“从本地上传视频”,获取合适的视频。还可单击“批量操作”,对视频进行批量操作。 视频要求为: 最大文件大小2M 支持的格式:mp4/3gp 视频长度建议不超过33秒 文件名不能超过100个字符(包括扩展名) 单击视频,在页面右侧会出现“编辑视频”,单击“上传本地视频”可以从本地上传视频;单击“裁切封面”,可以设置视频封面;单击“上传封面”,可以上传本地封面。 单击视频,左侧会出现操作栏: 单击视频左侧,对视频增加描述;再次单击视频左侧,对视频描述进行删除; 单击视频左侧,对增加的描述位置进行上下调整; 单击视频左侧,对视频位置进行调整; 单击视频左侧,对视频进行删除。 单击页面右上角的“预览”按钮,弹出“预览”框,在“预览”框处可查看“苹果”、“华为”、“小米”、“OPPO”或“vivo”的展示效果。 若创建模板出现问题,则会弹出“VMS自动检测”框,根据提示,单击“返回修改”,对创建的模板进行修改。 苹果机型不可显示详情页。 确认无误后,在“预览”框上单击“确定”。 单击页面右上角的“保存”按钮,可以对创建的个人模板进行保存。 单击页面右上角的“提交审核”按钮,输入“模版名称”、“ 有效期 (日)”并选择“签名”和“通道配置”,单击“确定”进行模板审核提交,完成模板创建。
  • 查询模板 公共模板 方法一: 在页面右上角的选择框内,选择“模板名称”或“模板id”后,输入对应的内容进行筛选。 方法二: 根据“模板类型”进行筛选。 模板类型为:“全部”、“静态(不带参数)”和“动态(带参数)”。 鼠标移动到审核通过的模板上,会出现“发送信息”和“预览”这两个菜单,根据自己的需要进行选择。 选择“发送信息”,则可直接跳转到“发送信息”页面,然后根据3进行参数填写后,单击“发送”。 选择“预览”,弹出“预览模板”对话框,单击“发送信息”后跳转到“发送信息”页面,然后根据3进行参数填写后,单击“发送”。 我的模板 方法一: 在页面右上角的选择框内,选择“模板名称”或“模板id”后,输入对应的内容进行筛选。 方法二: 根据“模板类型”和“审核状态”进行筛选。 模板类型为:“全部”、“静态(不带参数)”和“动态(带参数)”。 审核状态为:“全部”、“审核中”、“已禁用”、“通过”、“审核不通过”、“已过期”和“草稿”。 仅显示过期6个月内模板,可进行复制、修改操作,重新进入审核流程。 鼠标移动到审核通过的模板上,会出现“发送信息”、“预览”、“复制”、和“删除”等菜单,根据自己的需要进行选择。 选择“发送信息”,则可直接跳转到“发送信息”页面,然后根据3进行参数填写后,单击“发送”。 选择“预览”,弹出“预览模板”对话框,单击“发送信息”后跳转到“发送信息”页面,然后根据3进行参数填写后,单击“发送”。 在“预览模板”对话框中可以查看“审核状态”,也可单击按钮,删除模板。 在“预览模板”对话框中可以查看“模板状态”,可以查看模板是否启用或禁用。 选择“复制”,可直接跳转到“创建模板”页面,复制此模板。 选择“删除”,弹出“删除模板确认提示”对话框,单击“确认”进行模板删除。 审核状态为“审核中”的模板,不能进行模板删除。
  • 认识KooMessage控制台 用户开通KooMessage服务后,进入KooMessage控制台,默认进入“总览”页面。 总览页面会显示: 购买套餐包:单击“购买套餐包”,进入购买页面,具体可参见购买KooMessage套餐包。 流程指引:显示智能信息、智能信息基础版、智能信息服务号等流程指引,根据需要,按照指引操作。 查看套餐包详情:页面显示各服务购买的套餐详情,可以查看套餐余量、可使用的套餐包信息等。更多信息请参考套餐包。 图1 总览 如果当前用户有正在使用的解析标识,会在页面顶部显示解析标识的使用信息,示例如图2,单击“查看详情”会跳转至“解析任务管理”页面。 图2 总览(解析标识)
  • 相关操作 服务号: 修改:在“服务号资料管理”界面的“服务号”页签,在“商家名称/ID”对应的“操作”列下,单击“修改”。 修改时,要写清楚修改原因,且不超过10个字符。 服务号冻结:在“服务号资料管理”界面的“服务号”页签,在“商家名称/ID”对应的“操作”列下,单击“服务号冻结”。 解冻:在“服务号资料管理”界面的“服务号”页签,在“商家名称/ID”对应的“操作”列下,单击“解冻”。 菜单: 预览:在“服务号资料管理”界面的“菜单”页签,在“商家名称/ID”对应的“操作”列,单击“预览”,弹出“预览”对话框。 修改:在“服务号资料管理”界面的“菜单”页签,在“商家名称/ID”对应的“操作”列,单击“修改”。 催审:在“服务号资料管理”界面的“菜单”页签,在“商家名称/ID”对应的“操作”列,单击“催审”。 主页: 预览:在“服务号资料管理”界面的“主页”页签,在“商家名称/ID”对应的“操作”列,单击“预览”,弹出“预览”对话框。 修改:在“服务号资料管理”界面的“主页”页签,在“商家名称/ID”对应的“操作”列,单击“修改”。 催审:在“服务号资料管理”界面的“主页”页签,在“商家名称/ID”对应的“操作”列,单击“催审”。
  • 绑定通道号 通道号创建成功后,需要将服务号绑定通道号才可以正常使用。 在“通道号管理”界面,单击“通道号列表”,进入“通道号列表”界面。 在对应的“操作”列下单击“绑定”。 在“绑定”界面,配置信息请参考表1。 表1 通道号信息配置 参数 说明 商家名称 必填项。 系统自动显示。 服务号名称 必填项。 选择需要绑定的服务号的名称。 通道号 必填项。 系统自动显示。 通道号类型 必填项。 系统自动显示。 通道号签名 必选项。 选择通道号签名。 地区 必选项。 选择服务号的省份,可以精确至地级市。 单击“绑定”,完成服务号与通道号的绑定。
  • 公共模板 系统内置各种模板文件可供参考和选择,可根据“模板类型”、“版式类型”、“模板行业”、“厂商名称”进行过滤筛选。鼠标移动到筛选后的模板上,会出现“发送信息”、“生成解析标识”、“测试发送”、“复制”和“预览”这五个菜单。 使用公共模板进行测试发送: 单击“测试发送”,弹出“测试发送”对话框,在对话框左侧“效果预览”处,可查看预览效果;在对话框右侧“发送对象”处,可选择“手动输入”或“文件上传”的方式填写需要的“手机号码”。 测试发送只支持发送10次。 若要直接使用公共模板发送信息: 方法一:将鼠标移动到筛选后的模板上,单击“发送信息”或“生成解析标识”,跳转到对应页面进行操作。 方法二:将鼠标移动到筛选后的模板上,单击“预览”,弹出“预览智能信息”对话框,单击“发送信息”或“生成解析标识”,跳转到对应页面进行操作。 在“预览智能信息模板”对话框上的“可用厂商”处,可查看哪些厂商模板审核是否通过。
  • KooMessage自定义策略样例 示例1:授权用户开通智能消息服务的所有权限 { "Version": "1.1", "Statement": [ { "Action": [ "KooMessage:*:*" ], "Effect": "Allow" } ]} 示例2:拒绝用户删除云服务 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。 如果您给用户授予KooMessage FullAccess的系统策略,但不希望用户拥有KooMessage FullAccess中定义的删除云服务权限,您可以创建一条拒绝删除云服务的自定义策略,然后同时将KooMessage FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对KooMessage执行除了删除云服务外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "kooMessage:devSendTask:create" ] } ]}
  • 操作步骤 参考获取云手机列表、为单台云手机安装应用在单台手机上安装应用最新的版本。 如果应用存在资源更新,请启动应用并完成资源文件的下载和更新。 参考生成应用版本tar包并推至OBS桶和推送应用tar包至服务器共享空间生成并推送tar包到服务器共享空间。 执行appctrl命令进行更新(参考appctrl命令)。 执行appctrl start 命令,云手机会安装该应用共享空间中最新版本并启动。 执行appctrl install命令,云手机会安装该应用共享空间中最新版本。 1. 当共享空间中某应用没有更新版本时,appctrl start和 appctrl install不会对已安装版本进行重复安装。 2. 对于采用共享方式安装的应用,如果启动应用后采用在线更新的方式更新资源,该更新后的资源会占用云手机的存储空间。因此当应用存在必要的在线更新时,建议提前对共享空间中的应用版本和在线资源进行更新。
  • 升级AOSP版本 方法一(保留用户数据) 云手机重启接口支持切换AOSP镜像版本,同时保留用户数据,操作详情请参考重启云手机实例。 注意: 重启接口支持将低版本镜像升级成高版本,但不支持将高版本镜像降级为低版本。 如果您没有保留用户数据的强烈诉求,推荐您使用方法二切换AOSP版本,应用不兼容的风险更小。 方法二(不保留用户数据) 云手机重置接口支持切换AOSP镜像版本,操作详情请参考重置云手机实例。 注意: 重置接口支持将低版本镜像升级成高版本,也支持将高版本镜像回退为低版本。
  • 当前已默认使能Vulkan的应用 当前CPH支持使能Vulkan的应用列表如表1所示,不在此表格中的应用暂不支持。 表1 支持使能Vulkan的应用列表 名称 包名 绝区零国服 com.miHoYo.Nap 绝区零国际服 com.HoYoverse.Nap 光遇国服 com.netease.sky 光遇国际服 com.tgc.sky.android 剑网3 com.seasun.jx3 方舟生存进化 com.studiowildcard.wardrumstudios.ark 使命召唤 com.activision.callofduty.warzone NBA 2k24 MyTEAM com.t2ksports.myteam 阿瑞斯:守护者崛起 com.kakaogames.ares roblox com.roblox.client Pokemon TCG Pocket jp.pokemon.pokemontcgp Asphalt Legends Unite com.gameloft.android.ANMP.GloftA9HM ASTRA: Knights of Veda com.hybeim.astra
  • 业务场景示例一 所有服务器需要预置公共文件,某些服务器需要预置特殊配置文件,处理不同业务。 例如:1.txt、2.txt为公共配置文件,需要预置到所有服务器的云手机中。同时需要预置特定配置文件a.txt,仅对服务器组A生效;特定配置文件b.txt,仅对服务器组B生效。 此时需将1.txt、2.txt打包,并以com.cph.config为包名推送到所有服务器; 将a.txt单独打包,并以com.cph.config.level1为包名推送到服务器组A的服务器; 将b.txt单独打包,并以com.cph.config.level1为包名推送到服务器组B的服务器; 如果需要更新1.txt、2.txt,则更新该文件后重新打包,并以com.cph.config为包名推送的服务器。 如果需要更新a.txt/b.txt,则更新该文件后重新打包,并以com.cph.config.level1为包名推送到对应服务器。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/batch-storageHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/app/${package_name}-*", "/data/data/${package_name}", "/data/media/0/Android/data/${package_name}" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考为单台云手机安装应用章节的说明获取。 phone_id为安装了对应应用的云手机ID。 include_files中的三个元素需要填写手机中的绝对路径。 如果该安装包为xapk类型,则需要在include_files中增加“/data/media/obb/${package_name}”路径。 object_path为tar包上传至OBS桶的目标路径。 object_path中apk为obs桶中已存在文件夹,${package_name}为当前应用的包名,${version_name}为当前应用的版本号,版本号可自行定义。 针对共享应用场景,部分应用在启动后,会进行资源文件的在线下载。对于此类应用,在执行当前操作前,建议先启动一次应用,待资源文件和补丁包下载完成后,再执行当前操作。后续以共享应用的方式安装到云手机后,该应用的启动过程可省去资源文件下载的过程。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commandsHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "command": "install", "content": "-t -r obs://{bucket_name}/{object_path}", "phone_ids": [ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]} 其中, CPH Endpoint、project_id、${token}等参数取值可以参考获取云手机列表章节的说明获取。 bucket_name为 对象存储服务 OBS的桶名,object_path为apk安装包的存放路径。 phone_ids为需要安装应用的云手机ID(通过获取云手机列表获得,可以填多个,填多个则为多台云手机安装apk应用)。
  • 接口使用示例 POST https://cph.cn-east-3.myhuaweicloud.com/v1/081ceeb7fb800f0c2f4cc004bb39c2f7/cloud-phone/phones/commands Content-Type: application/jsonX-Auth-Token: ${token}{ "command": "install", "content": "-t -r obs://yzw-apk-install/apk/com.hermes.bgame.apk", "phone_ids": [ "bdc2f2e960164dd9a2765374afeea300" ] } yzw-apk-install为OBS桶名,apk/com.hermes.bgame.apk为安装包存放路径,obs://yzw-apk-install/apk/com.hermes.bgame.apk为安装包全路径。 ${token}需要换成实际获取到的token值。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/batch-storageHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/app/${package_name}-*", "/data/data/${package_name}", "/data/media/0/Android/data/${package_name}" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考为单台云手机安装应用章节的说明获取。 phone_id为安装了对应应用的云手机ID。 include_files中的三个元素需要填写手机中的绝对路径。 如果该安装包为xapk类型,则需要在include_files中增加“/data/media/obb/${package_name}”路径。 object_path为tar包上传至OBS桶的目标路径。 object_path中apk为obs桶中已存在文件夹,${package_name}为当前应用的包名,${version_name}为当前应用的版本号,版本号可自行定义。 针对共享应用场景,部分应用在启动后,会进行资源文件的在线下载。对于此类应用,在执行当前操作前,建议先启动一次应用,待资源文件和补丁包下载完成后,再执行当前操作。后续以共享应用的方式安装到云手机后,该应用的启动过程可省去资源文件下载的过程。
  • 配置云手机服务器国内流量分流(可选) 参考以上“操作步骤”第6步,在国内云手机所在Region,购买EIP、公网NAT网关,并配置好SNAT规则。此处有一个差异,不需要配置路由表目的地址0.0.0.0/0到NAT网关。 参考以上“操作步骤”第2、3步,进入云手机服务器详情页面,找到“路由表”。 单击路由表名称,进入路由表页面,单击“添加路由”。 在弹出的对话框中,目的地址输入需要分流到国内的IP地址或网段,下一跳类型选择“NAT网关”,下一跳选择第1步购买的公网NAT网关,然后确定。 如果有其它IP地址或网段需要分流,重复第4步添加。
  • 存储1.0机器 推送tar包至服务器,即将文件“apk/${package_name}_${version_name}.tar”推送到服务器(${server_id1}和${server_id2})的共享存储中。 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-filesHeader: Content-Type: application/json X-Auth-Token: ${token} Body: { "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "server_ids": [ "${server_id1}", "${server_id2}" ]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考4.2 为单台云手机安装应用的说明获取。 object_path为tar包上传的目的路径。 package_name为当前应用的包名,version_name为当前应用的版本号。 apk为任意已存在文件夹,${package_name}_${version_name}.tar中除.tar后缀外,其余内容需根据实际名称来修改。 server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通过“查询云手机服务器列表”接口获得。 使用示例 参考《云手机服务器API参考》的“推送共享存储文件”章节。 后续操作 参考《云手机服务器API参考》“重置云手机”接口,批量重置所有云手机。
  • 接口使用示例 POST https://cph.cn-east-3.myhuaweicloud.com/v1/081ceeb7fb800f0c2f4cc004bb39c2f7/cloud-phone/phones/commands Content-Type: application/jsonX-Auth-Token: ${token}{ "command": "install", "content": "-t -r obs://yzw-apk-install/apk/com.hermes.bgame.apk", "phone_ids": [ "bdc2f2e960164dd9a2765374afeea300" ] } yzw-apk-install为OBS桶名,apk/com.hermes.bgame.apk为安装包存放路径,obs://yzw-apk-install/apk/com.hermes.bgame.apk为安装包全路径。 ${token}需要换成实际获取到的token值。
  • 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/commandsHeader:Content-Type: application/jsonX-Auth-Token: ${token}Body:{ "command": "install", "content": "-t -r obs://{bucket_name}/{object_path}", "phone_ids": [ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ]} 其中, CPH Endpoint、project_id、${token}等参数取值可以参考获取云手机列表章节的说明获取。 bucket_name为对象存储服务OBS的桶名,object_path为apk安装包的存放路径。 phone_ids为需要安装应用的云手机ID(通过获取云手机列表获得,可以填多个,填多个则为多台云手机安装apk应用)。
  • 存储2.0机器(推荐) 推送tar包至服务器,即将文件“apk/${package_name}_${version_name}.tar”推送到服务器(${server_id1}和${server_id2})的共享应用中。 接口示例 POST https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones/share-appsHeader: Content-Type: application/json X-Auth-Token: ${token} Body: { “package_name”: “${package_name}” "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "server_ids": [ "${server_id1}", "${server_id2}" ]} 其中, CPH Endpoint、project_id、${token}、bucket_name、object_path等参数可以参考1.4.2-为单台云手机安装应用的说明获取。 package_name为应用在安卓系统中的包名,例如:com.miniteck.miniworld。 object_path为tar包上传的目的路径。 package_name为当前应用的包名,version_name为当前应用的版本号。 apk为任意已存在文件夹,${package_name}_${version_name}.tar中除.tar后缀外,其余内容需根据实际名称来修改。 server_ids为部署应用版本的目标服务器ID列表,可以填写多个,服务器ID可通过“查询云手机服务器列表”接口获得。 使用示例 参考《云手机服务器API参考》的“推送共享应用”章节。
  • 接口示例 GET https://{CPH Endpoint}/v1/{project_id}/cloud-phone/phones?phone_name={phone_name}&server_id={server_id}&status={status}&offset={offset}&limit={limit}&type={type}Header:Content-Type: application/jsonX-Auth-Token: ${token} 其中, CPH Endpoint为Endpoint列表中CPH对应区域的终端节点,如华北-北京四为cph.cn-north-4.myhuaweicloud.com。 project_id为云手游服务器所属区域对应的项目ID,如083e9f825e80f50c2f96c0045edc70e8。可通过如下方式获取: 登录管理控制台。 单击右上角用户名下的“我的凭证”。 在“API凭证”页面的项目列表中获取项目ID。 图1 获取项目ID URL中"?"之后的部分为可选参数。 $token为 获取Token 接口的响应结果。
  • 操作步骤 参考获取云手机列表,从列表中选定一台云手机,将需要打包的文件放入到该云手机的目标路径下。 例如:服务器上云手机需要在/data/local/huawei/、/data/local/tmp/路径下分别部署test.txt和test.sh文件。将test.txt、test.sh放入选定手机的/data/local/huawei/、/data/local/tmp/目录下。 将文件打包成配置文件tar包并上传到OBS桶。 调用示例: POST https://${CPH Endpoint}/v1/${project_id}/cloud-phone/phones/batch-storage Header: Content-Type: application/json X-Auth-Token: ${token} Body: { "storage_infos": [{ "phone_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "include_files": [ "/data/local/huawei/test.txt", "/data/local/tmp/test.sh" ], "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar" }] } 其中, include_files中的元素为需要打包的文件在云手机中的绝对路径。 object_path中${package_name}仅支持com.cph.config、com.cph.config.level1、com.cph.config.level2中的一种,${ version_name }用于识别配置包版本,可自行定义。 参考推送应用tar包至服务器共享空间,将配置文件tar包推送到目标云手机服务器。 调用示例: POST https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/share-appsHeader: Content-Type: application/json X-Auth-Token: ${token} Body:{ "package_name": "${package_name}", "bucket_name": "${bucket_name}", "object_path": "apk/${package_name}_${version_name}.tar", "pre_install_app": 1, "server_ids": [ "${server_id1}", "${server_id2}" ] } 推送时需将"pre_install_app"参数设置为1。 重置或重启云手机,自动部署配置文件包中的文件到云手机对应位置。 配置文件包部署到云手机会占用云手机存储空间,建议配置文件不要过大。 建议仅使用一个配置文件包完成业务部署,将所需的文件都打包在com.cph.config包中,并且文件放置在云手机固定目录,方便文件统一管理。 如果当前支持的三个配置文件包均需预置,云手机在重置或重启时,会按照com.cph.config、com.cph.config.level1、com.cph.config.level2的顺序依次部署,如果有相同文件,则会依次覆盖。
  • 步骤3:设置手机属性 您有两种方式设置手机属性。 方式一:adb连接到云手机,然后执行adb命令 adb shell setprop com.cph.cam_local_pic_path /data/local/tmp/pic.jpeg 使用此这种方式,重启手机后属性失效。 方式二:调用云手机api接口设置属性 参考更新云手机属性来设置,将”com.cph.cam_local_pic_path”:”/data/local/tmp/pic.jpeg”属性设置到手机中。属性将被持久化,重启手机属性依然保留。
  • 操作步骤 参考推送应用tar包至服务器共享空间,推送需要预装的应用tar包到服务器共享空间,将pre_install_app设置为1。 重置云手机,所有预装应用会自动安装。 预装应用的安装过程会占用一定的手机重置时间。 若云手机正在使用中,无法重置进行重置,也可使用appctrl install命令直接安装应用。 取消应用的预装,参考推送应用tar包至服务器共享空间,再次推送该应用的tar包并将pre_install_app参数设置为0;再次重置云手机时,该应用不会自动安装到云手机中。
  • 调用示例 DELETE "https://${CPH Endpoint}/v1/${projectId}/cloud-phone/phones/share-apps" Header: Content-Type: application/json X-Auth-Token: ${token}Body:{ "package_name": "com. huawei.xxxx", "server_ids": ["1678567b8bab40f937112xxxxx","1234567b8bab40ffb711xxxxx"]}
  • WiFi信息模拟 WiFi信息获取 获取WiFi信息示例: WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo wifiConnection = wifiManager.getConnectionInfo();if (wifiConnection != null) { String bssid = wifiConnection.getBSSID();} WiFi信息注入 针对当前连接WiFi BSSID,可以通过设置属性com.cph.wifi.bssid进行注入。 举例: setprop com.cph.wifi.bssid 02:00:00:00:00:00
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全