PC端 SDK:
步骤1 登录云手机控制台。
步骤2 单击“SDK管理”,单击“PC端 SDK”,进入SDK 接口说明页,支持下载集成文档及SDK程序包。
引入SDK包
PC端调用ydyun.dll的相关接口,可以实现以下功能
1. 启动单台设备可视化窗口
2. 启动可视化窗口后可以控制该设备
3. 启动可视化窗口后可以将该设备的控制指令群发给其他设备,实现群控(群控前要确保其他设备在相同操作界面,这样才有相同的操作效果)
4. 一个进程调用DLL只能生成一个可视化窗口,要多开可视化要再建个新进程调用,最多可以实现三个进程打开可视化窗口。
接口说明
1、员工登录
访问员工云手机设备前,需要先登录
const char* UserLogin (char* szPhoneNumber, char* szPassWord)
char* szPhoneNumber 用户名
char* szPassWord 用户密码
返回值
JSON格式,员工信息
{
"Account": "",//用户名
"Company": "",//公司
"Contact": "",//联系方式
"Department": null,//部门
"Email": "",//电子邮箱
"HeadImg": null,//头像
"Id": "",//ID
"IsAuthRecovery": 0,//是否是否授权恢复出厂
"Job": null,//职务
"MerAppKey": "",//商户KEY
"NickName": ""//昵称
}"Company": "",//公司
"Contact": "",//联系方式
"Department": null,//部门
"Email": "",//电子邮箱
"HeadImg": null,//头像
"Id": "",//ID
"IsAuthRecovery": 0,//是否是否授权恢复出厂
"Job": null,//职务
"MerAppKey": "",//商户KEY
"NickName": ""//昵称
查询失败时返回空字符串,还额外会触发pFunErrLogCallback,详细描述见pFunErrLogCallback相关描述
2、 员工登出
当客户端退出时,可调用登出,会关闭已经打开的可视化窗口,并关闭所有已连接的反抗
const char* UserLogout
返回值
目前不使用
3、获取云手机设备列表
可获取当前员工的所有设备详情,以用界面显示
const char* GetOrderList ()
返回值
JSON格式,设备信息列表
[{
"GroupID": 0,//组ID
"MonthCardRemindInfo": null,//月卡提醒对象,MonthCardExpiredTime 月卡过期时间,ResidueHours剩余小时数(客户端格式化后显示,到期提醒也根据这个值判断)
"OrderCreateTime": "2021-08-03 15:53:15",//订单创建时间
"OrderId": 10141580,//订单号
"OrderIdPrefix": "基础型-",//订单号前缀
"OrderRemark": "",//订单备注
"OrderStatus": 2//订单状态,如下
Running 2运行中
Ended 4已结束,早期时长卡的状态
Rebooting 5重启中
AbnormalEnd 6异常结束(针对月卡订单生效,状态等同Ended)
Reseting 7重置中
Retrieve 8设备回收
DataBackUp 10设备异常,用户手动更换设备,备份数据中
Recovery 11设备回收恢复中
Recovery2 12设备异常恢复中
Recovery3 13设备续费恢复中
RetrieveBackuping 14设备回收备份中
DataExprieRenew 15正常过期且有有效扩展服务续费 包括设备备份失败后,订单也是这个状态
Deleted -1已删除
DataBackuping -3处理过期订单时,有数据保存服务,备份中
DeleteRenew -4设备回收后,处理过期订单,可续费状态
DataRenewNoDev -5续费后,没有可用设备状态
DataBackUpFail -6设备异常备份失败
RecoveryNormal -7设备回收后,数据恢复失败
RecoveryAbNormal -8设备异常后,数据恢复失败
All 100全部(用于下拉框)
Maintaining -2维护中,(客户端使用的状态)
PanicBuyNoDev -101抢购无设备,(客户端使用的状态)
PayBuyNoDev -102购买付费后无设备,(客户端使用的状态)
}]"MonthCardRemindInfo": null,//月卡提醒对象,MonthCardExpiredTime 月卡过期时间,ResidueHours剩余小时数(客户端格式化后显示,到期提醒也根据这个值判断)
"OrderCreateTime": "2021-08-03 15:53:15",//订单创建时间
"OrderId": 10141580,//订单号
"OrderIdPrefix": "基础型-",//订单号前缀
"OrderRemark": "",//订单备注
"OrderStatus": 2//订单状态,如下
Running 2运行中
Ended 4已结束,早期时长卡的状态
Rebooting 5重启中
AbnormalEnd 6异常结束(针对月卡订单生效,状态等同Ended)
Reseting 7重置中
Retrieve 8设备回收
DataBackUp 10设备异常,用户手动更换设备,备份数据中
Recovery 11设备回收恢复中
Recovery2 12设备异常恢复中
Recovery3 13设备续费恢复中
RetrieveBackuping 14设备回收备份中
DataExprieRenew 15正常过期且有有效扩展服务续费 包括设备备份失败后,订单也是这个状态
Deleted -1已删除
DataBackuping -3处理过期订单时,有数据保存服务,备份中
DeleteRenew -4设备回收后,处理过期订单,可续费状态
DataRenewNoDev -5续费后,没有可用设备状态
DataBackUpFail -6设备异常备份失败
RecoveryNormal -7设备回收后,数据恢复失败
RecoveryAbNormal -8设备异常后,数据恢复失败
All 100全部(用于下拉框)
Maintaining -2维护中,(客户端使用的状态)
PanicBuyNoDev -101抢购无设备,(客户端使用的状态)
PayBuyNoDev -102购买付费后无设备,(客户端使用的状态)
查询失败时返回空字符串,还额外会触发pFunErrLogCallback,详细描述见pFunErrLogCallback相关描述
4、打开设备视频可视化窗口
可视化窗口支持鼠标点击、滑动,打字,连接视频后会同时自动连接该设备的反控。如果可视化窗口正在播放该设备会触发重连
HWND StartVideo (int nOrderID, HWND hParentWnd)
int nOrderID //设备号
HWND hParentWnd //父窗口句柄
返回值
可视化窗口句柄,NULL表示打开失败
当可视化窗口自动连接该设备的反控成功后还会触发pFunResolutionCallback
可视化打开后屏幕分辨率回调,注册回调函数以此判断设备发生横竖屏切换
typedef void (*pFunResolutionCallback)(char* strJson);
typedef void (*pFunRegResolutionCallback)(pFunResolutionCallback pCallback);
char* strJson JSON格式,桌面分辨率信息
{
"nOrderID":,//设备号
"nHeight":,//高度
"nWidth":,//宽度
"rotate":1//横竖屏 1竖屏 2横屏
}"nHeight":,//高度
"nWidth":,//宽度
"rotate":1//横竖屏 1竖屏 2横屏
查询失败时返回空字符串,还额外会触发pFunErrLogCallback,详细描述见pFunErrLogCallback相关描述
5、关闭可视化窗口
关闭可视化窗口,并退出该设备的反控
void CloseVideo ()
6、连接设备的反控
单独连接设备的反控,做一些后续操作
void ConnectControl (int nOrderID)
int nOrderID //设备号
返回值
连接成功会触发pFunConnSuccessCallback
反控连接成功回调,注册回调函数以此判断是否出现异常
typedef void (*pFunConnSuccessCallback)(char* strJson);
typedef void (*pFunRegConnSuccessCallback)(pFunConnSuccessCallback pCallback);
char* strJson JSON格式,错误信息
{
"nOrderID":,//设备号
}连接失败会触发pFunErrLogCallback
反控、视频流错误回调,注册回调函数以此来判断是否出现异常
typedef void (*pFunErrLogCallback)(char* strJson);
typedef void (*pFunRegErrLogCallback)(pFunErrLogCallback pCallback);
char* strJson JSON格式,错误信息
{
nOrderID//设备号
szErrCode//错误代码
1022 视频流连接异常被断开
1023 视频流服务端close socket
1024 视频流SEND数据异常
1025 视频流RECV数据异常
1026 视频流播放失败
1045 音频问题包
2001 无法连上反控
2002 反控通知被T出连接
2003 反控服务端close socket
2004 反控SEND数据异常
2005 反控RECV数据异常
2006 反控超过40秒没有收到中控的应答包
2007 反控未连接不能发送操作指令,要手动重连反控
3001 用户登录失败
3002 获取设备列表失败
3003 获取订单数据失败
3004 获取启动设备失败
3005 查询ANBOX失败
8003 视频连接出错
8005 连接视频流后读超时
szErrMsg//错误描述
}szErrCode//错误代码
1022 视频流连接异常被断开
1023 视频流服务端close socket
1024 视频流SEND数据异常
1025 视频流RECV数据异常
1026 视频流播放失败
1045 音频问题包
2001 无法连上反控
2002 反控通知被T出连接
2003 反控服务端close socket
2004 反控SEND数据异常
2005 反控RECV数据异常
2006 反控超过40秒没有收到中控的应答包
2007 反控未连接不能发送操作指令,要手动重连反控
3001 用户登录失败
3002 获取设备列表失败
3003 获取订单数据失败
3004 获取启动设备失败
3005 查询ANBOX失败
8003 视频连接出错
8005 连接视频流后读超时
szErrMsg//错误描述
7、断开设备的反控
断开设备的反控, 如果可视化窗口正在播放该设备也会一并关闭
nOrderID//设备号
void DisconnectControl (int nOrderID)
int nOrderID//设备号
8、设备物理按键
模拟三键、音量键等(ConnectControl多个设备时走群发)
void KeyEvent (int nKey)
int nKey //按键序号
0--回退键
1--HOME键
2--历史键
3--音量大
4--音量小
0--回退键
1--HOME键
2--历史键
3--音量大
4--音量小
请求失败时还额外会触发pFunErrLogCallback,详细描述见pFunErrLogCallback相关描述
9、获取设备截图
截图(ConnectControl后才有效,处理结果走回调函数,设备会自动根据目前横竖屏状态截取翻转后的图片)
void GetScreenCutPng (int nOrderID, int nWidth, int nHeight, char* szDirPath)
int nOrderID //设备号
int nWidth //截图宽度
int nHeight //截图高度
char* szDirPath/ /截图存储文件夹路径
返回值
截图结果回调pFunGetScreenCutPngCallback
/截图请求回调函数
typedef void (*pFunGetScreenCutPngCallback)(char* strJson);
typedef void (*pFunRegGetScreenCutPngCallback)(pFunGetScreenCutPngCallback pCallback);
char* strJson JSON格式,截图信息
{
nOrderID//设备号
szScreenCutPngPath//截图本地保存的绝对路径
}szScreenCutPngPath//截图本地保存的绝对路径
请求失败时还额外会触发pFunErrLogCallback,详细描述见pFunErrLogCallback相关描述。