首頁 > 易卦

Total Control的深入用法,如何使用指令碼實現啟動或重啟指定App

作者:由 巫蠱阿姨 發表于 易卦日期:2022-08-14

到位元組集是什麼意思

我們知道Total Control可以幫我們實現一臺電腦同時控制多達100部手機,但是呢?如果我們幾百部手機需要操作,人手不夠,精力有限,這時候怎麼辦呢?指令碼就可以展現其強大的力量了。我們可以透過指令碼來實現自動化批次操作手機。又有人問了,可是我不會指令碼編寫啊,Total Control貼心的推出了全新的AAI指令碼功能,操作簡單,小白也能輕鬆上手,我們今天就拿自動實現啟動或重啟指定APP這個例子來看看有多簡單!

首先,我們要先下載安裝Total Control:

Total Control的深入用法,如何使用指令碼實現啟動或重啟指定App

電腦安裝軟體後,用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 執行器中執行。

步驟描述:

匯入必要的ringoJS 包

將使用者名稱密碼編碼,‘sigma:76BF7A2D’是使用者名稱和密碼,在Total Control系統設定裡面可以看到

獲取 Total Control 指令碼開發所用的開發token和主控裝置ID,並將獲取的響應內容轉換成json物件

執行示例

程式碼如下:

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”}

* 恭喜你,成功了!