之前分享过用JavaScript写脚本实现电脑自动控制手机的功能。但是很多老铁只会换语言。java、python等其他语言呢?其实很简单。用Total Control提供的REST API就好了!Total Control的REST API支持任何脚本语言。今天我要用易语言讲讲手机上的软件如何自动打开和关闭。易于实现的自动软件安装(installApp)
功能:将您电脑上的apk文件安装到您的设备上。
申请方式:邮寄
http://IP :8090/total control/v1/devices/: device/apps?token=: token file _ name=: file _ name
参数描述:
易语言示例:将电脑上的QQ音乐apk文件安装到设备上,apk在电脑存储位置: ' e : \ file \ qqyinle _ 850 . apk '
代码如下:版本2。装配窗口装配_启动窗口。子程序_ _启动窗口_已创建。base64局部变量,文本类型。局部变量标记,文本类型。局部变量设备,文本类型
局部变量j_token,class _json,用于解析json以获取令牌。
局部变量j_dev,class _json,用于解析json以获取设备ID值。
局部变量j_ret,class _json,用于解析REST API接口的json。局部变量bool,逻辑类型。局部变量bool_dev,逻辑类型。局部变量bool_ret,逻辑类型。局部变量状态,文本类型
Base64=to text (encoding _BASE64编码(to byte set ("sigma:3D391497 "))
调试文本(“将用户名和密码汇编到sigma:3D391497中以进行base64编码所生成的字符串是:“base64”)
Bool=j _ token。解析(到文本(web page _ access _ object(" http://localhost 33608090/total control/v1/log in ",0、" authorization 3360" base64、、))。if(布尔值)
调试文本("第一步,获取token,返回值为:" j _ token。获取数据文本())
Token=j _ token。以通用属性(“‘值’”)为例。令牌”)
输出调试文本(“获得的令牌值为:“令牌”)
Bool _ dev=j _ devparse(encoding _ utf8 to GB 2312(to text(web page _ access _ object(" http://localhost 33608090/total control/v1/devices/main?token=" + token,0))))。if (bool_dev)
输出调试文本("步骤2,获取设备ID值,返回值为:" j _ dev。获取数据文本())
设备=j _ dev。以通用属性(“' id '”)为例
调试文本(“获得的设备ID值为:“设备”)
Status=to the(网页_访问_对象(" http://localhost 33608090/total control/v1/devices/"设备"/apps?File _ name=e :/File/QQyinle _ 850 . apk token="+token,1))
输出调试文本(“第三步,给设备安装apk,返回值为:“status”)
否则。
输出调试文本(“无法获取设备ID值”)。如果结束了
否则。
调试文本(“无法获取令牌”)。如果结束了
易语言代码运行结果:
如果成功,将返回3360。
*将用户名和密码组装成sigma:3D391497进行base64编码生成的字符串为:c2lnbWE6M0QzOTE0OTc=
*第一步,获取令牌,返回值为:{'status' 3360 true,' value ' 3360 { ' token ' 3360 ' u 56 ad 779838m 6 f ' } }
*获得的令牌值为u 56 ad w779838 m 6 f。
*步骤2,获取设备ID值,返回值为:{
"id":"device@230441652"}* 获取的设备 ID 值为: device@230441652
* 第三步,安装 apk 到设备,返回值为:{"status": true, "value": "install apk success."}
(一) 易语言实现自动卸载手机上的软件(uninstallAPK)
函数功能:卸载设备上指定软件。
请求方式:DELETE
http://IP:8090/TotalControl/v1/devices/:device/apps/:packageName?token=:token
参数说明:
易语言实例:卸载设备上的 QQ 音乐软件,软件名称为 "com.tencent.qqmusic"
代码如下:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 base64, 文本型
.局部变量 token, 文本型
.局部变量 device, 文本型
.局部变量 j_token, 类_json, , , 用来解析获取 token 的 json
.局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json
.局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json
.局部变量 bool, 逻辑型
.局部变量 bool_dev, 逻辑型
.局部变量 bool_ret, 逻辑型
.局部变量 AppName, 文本型
.局部变量 status, 文本型
base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”)))
输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64)
bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
.如果 (bool)
输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ())
token = j_token.取通用属性 (“<'value'>.token”)
输出调试文本 (“获取的 token 值为: ” + token)
bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/main?token=” + token, 0))))
.如果 (bool_dev)
输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ())
device = j_dev.取通用属性 (“<'id'>”)
输出调试文本 (“获取的设备 ID 值为: ” + device)
AppName = “com.sigma_rt.totalcontrol”
bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/apps/com.tencent.qqmusic?token=” + token, 5))))
.如果 (bool_ret)
输出调试文本 (“第三步,卸载指定软件,返回值为: ” + j_ret.取数据文本 ())
status = j_ret.取属性对象 (“status”)
.如果 (status = “true”)
输出调试文本 (“恭喜你,成功了!”)
.否则
输出调试文本 (“不好意思,失败了!”)
.如果结束
.否则
输出调试文本 (“该 API 执行失败”)
.如果结束
.否则
输出调试文本 (“获取设备 ID 值失败”)
.如果结束
.否则
输出调试文本 (“获取 token 失败”)
.如果结束
易语言代码运行结果:
成功,则返回:
* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=
* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"U56adwI779838M6F"}}
* 获取的 token 值为: U56adwI779838M6F
* 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"}
* 获取的设备 ID 值为: device@230441652
* 第三步,卸载指定软件,返回值为: {"status":true}
* 恭喜你,成功了!
(二) 不知道我要卸载的软件的软件包名怎么办?
为了方便用户,Total Control 提供了一个REST API来帮助用户获取应用程序的包名。
函数功能:获取设备上当前运行的软件包名
请求方式:GET
http://IP:8090/TotalControl/v1/devices/:device/apps?token=:token&q=foreground_app
参数说明:
返回示例:
成功,则返回:
{
"status": true,
"value":"com.sigma_rt.totalcontrol"
}
易语言实例:获取设备上当前运行的软件包名
代码如下:
.版本 2
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.局部变量 base64, 文本型
.局部变量 token, 文本型
.局部变量 device, 文本型
.局部变量 j_token, 类_json, , , 用来解析获取 token 的 json
.局部变量 j_dev, 类_json, , , 用来解析获取设备ID 值的 json
.局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json
.局部变量 bool, 逻辑型
.局部变量 bool_dev, 逻辑型
.局部变量 bool_ret, 逻辑型
.局部变量 status, 文本型
base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”)))
输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64)
bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
.如果 (bool)
输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ())
token = j_token.取通用属性 (“<'value'>.token”)
输出调试文本 (“获取的 token 值为: ” + token)
bool_dev = j_dev.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/main?token=” + token, 0))))
.如果 (bool_dev)
输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ())
device = j_dev.取通用属性 (“<'id'>”)
bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “/apps?q=foreground_app&token=” + token, 0))))
.如果 (bool_ret)
输出调试文本 (“第三步,获取当前运行的软件包名,返回值为: ” + j_ret.取数据文本 ())
status = j_ret.取属性对象 (“status”)
.如果 (status = “true”)
输出调试文本 (“恭喜你,成功了!”)
.否则
输出调试文本 (“不好意思,失败了!”)
.如果结束
.否则
输出调试文本 (“该 API 执行失败”)
.如果结束
.否则
输出调试文本 (“获取设备 ID 值失败”)
.如果结束
.否则
输出调试文本 (“获取 token 失败”)
.如果结束
易语言代码运行结果:
成功,则返回:
* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=
* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"U56adwI779838M6F"}}
* 获取的 token 值为: U56adwI779838M6F
* 第二步,获取设备 ID 值,返回值为:{"id":"device@230441652"}
* 第三步,获取当前运行的软件包名,返回值为: {"status":true,"value":"com.sigma_rt.totalcontrol"}
* 恭喜你,成功了!