栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Total Control的深入用法,如何使用脚本实现启动或重启指定App

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Total Control的深入用法,如何使用脚本实现启动或重启指定App

我们知道Total Control可以帮我们实现一台电脑同时控制多达100部手机,但是呢?如果我们几百部手机需要操作,人手不够,精力有限,这时候怎么办呢?脚本就可以展现其强大的力量了。我们可以通过脚本来实现自动化批量操作手机。又有人问了,可是我不会脚本编写啊,Total Control贴心的推出了全新的AAI脚本功能,操作简单,小白也能轻松上手,我们今天就拿自动实现启动或重启指定APP这个例子来看看有多简单!

首先,我们要先下载安装Total Control:

  

   电脑安装软件后,用USB连接手机到电脑,启动软件会推送安装包到手机。

启动或重启指定App

函数功能:

在当前设备下,启动或重启指定包名的APP

对应JS API:

runApp(packageName)

runAppSync(packageName,query)

是否支持多设备:

不支持

请求方式:POST

http://localhost:8090/TotalControl/v2/devices/:device/apps/:packageName?token=:token&state=:state&sync=:sync&query:query

参数说明:

参数名

类型

必选

描述

IP

String

Y

访问 Total Control 服务器的 IP 地址

token

String

Y

Total Control TOKEN

device

String

Y

主控设备对象值 id

state

String

Y

app运行标识,active代表启动该APP,restart代表重启该APP,可只要该参数

query

String

N

寻找启动App后界面中出现的组件,直到query内容代表的组件出现返回结果,超时返回详细信息,可以不添加此参数

sync

String

N

接口标识,配合query参数使用,固定值:on

响应参数:

Total Control 提供的 REST API 响应格式都是 JSON ,返回值通常由关键字 ”status” 和 ”value” 组成,
status: 接口执行成功与否 
value: 执行接口的返回信息

一、执行接口成功的返回字段说明

字段

类型

描述

status

Boolean

执行接口成功,则返回:true

value

String

操作信息,成功后返回值为“make it active” 

返回示例:

{

    "status": true,

    "value": "make it active"

}

二、执行接口返回 HTTP 状态码为 200,但是结果有误的返回字段说明

字段

类型

描述

status

Boolean

执行接口失败,则返回:false

value

String

返回失败的具体信息

返回示例:

{

    "status": false,

    "value": ""

}

请求示例:

http://localhost:8090/TotalControl/v2/devices/device@1116106541/apps/:packageName{

    "token":"270eq7lXQK8bXYsJ",

    "state":"active",

    "sync":"on",

    "query":"T:登录"

}

http://localhost:8090/TotalControl/v2/devices/device@1116106541/apps/:packageName{

    "token":"270eq7lXQK8bXYsJ",

    "state":"restart"

}

示例:启动“Total Control”APP,直到出现“USB 连接”的UI组件

注意:下列示例是通过本机访问 Total Control 服务器,所以 IP 都是用的 ”localhost”。

RingoJS 请求示例:

可以复制下面的代码,在 Total Control 的脚本终端中执行,也可以保存为后缀为 js 的文件, 例如:example.js,在Total Control 执行器中执行。

步骤描述:

  1. 导入必要的ringoJS 包
  2. 将用户名密码编码,'sigma:76BF7A2D'是用户名和密码,在Total Control系统设置里面可以看到
  3. 获取 Total Control 脚本开发所用的开发token和主控设备ID,并将获取的响应内容转换成json对象
  4. 执行示例

代码如下:

var {request} = require('ringo/httpclient');

var base64 = require('ringo/base64');

var userpass = base64.encode('sigma:76BF7A2D');

var gettoken = request({

    method:'GET',

    url: 'http://localhost:8090/TotalControl/v2/login',

    headers: {'Authorization': userpass}

});

var ret_token = JSON.parse(gettoken.content).value; 

var token = ret_token.token; 

print("//The value of token is: "+ token);

var getdevice = request({

    method: 'GET',

    url: 'http://localhost:8090/TotalControl/v2/devices/main?token=' + token

});

var device = JSON.parse(getdevice.content).id;

print("//The value of device ID is:"+ device);

var ret = request({

    method: 'POST',

    url: 'http://localhost:8090/TotalControl/v2/devices/'+device + '/apps/com.sigma-rt.com?',

    data: {

        'token':token,

        'state':'active',

        'query':'T:USB 连接',

        'sync':'on'

    }

});

print(ret.content);

RingoJS 示例运行结果:

执行成功,则返回:

//The value of token is:m195zZEgY91PMcbo

//The value of device ID is:device@230441652

{

    "status":true,

    "value":"make it active"

}

易语言请求示例:

.版本 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:76BF7A2D”)))

输出调试文本 (“将用户名和密码组装成 sigma:76BF7A2D 进行 base64 编码生成的字符串为:” + base64)

bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v2/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/v2/devices/main?token=” + token, 0))))

    .如果 (bool_dev)

        输出调试文本 (“第二步,获取设备 ID 值,返回值为:” + j_dev.取数据文本 ())

        device = j_dev.取通用属性 (“[“id”]”)

        输出调试文本 (“获取的设备 ID 值为: ” + device)

        bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v2/devices/” + device  + “/apps/com.sigma-rt.com?+ “token=&state=active&sync=on&query=T:USB 连接” + token, 1))))

        .如果 (bool_ret)

            输出调试文本 (“第三步,启动Total Control APP,返回值为: ” + 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

* 第三步,启动Total Control APP,返回值为: {“status”:true,“value”:“make it active”}

* 恭喜你,成功了!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599581.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号