获取设备属性

函数功能:

设备属性值是设备对象中用来描述该设备各项特征的一系列值。

由于每一个设备对象都对应了 Total Control 中已连接的一台手机设备,所以这些属性值都是对应的手机设备的真实属性,为只读,不可更改。
注意:
属性 No 和 displayMode 适用于 Total Control 6.9.0 及以后版本。

对应JS API:
//对应JS API 请点击这里 
device.IP;	//设备的IP地址  
device.DPI;  //设备屏幕的像素尺寸    
device.IMEI;  //设备的 IMEI 号
device.SN;  //设备的唯一编号 
device.width;  //设备屏幕分辨率宽度
device.height; //设备屏幕分辨率高度
device.androidVersionRelease;  //设备 Android 版本
device.androidVersionSdkInt;  //设备 Android SDK 版本
device.manufacturer ;	//设备制造商名称
device.model;  //设备的型号
device.No;  //获取当前操作设备,返回设备序号,在多控中心,返回设备序号,比如1,2,3,不在多控中心就返回 0.
device.displayMode;	//获取当前设备展现模式,返回 1 表示 WDM,即 Total Control Windows 界面,返回 2 表示 MDCC,即多控中心。
是否支持多设备:

不支持

请求方式:GET
http://IP:8090/TotalControl/v1/devices/:device?token=:token 
参数说明:
参数名 类型 必选 描述
IP string Y 访问 Total Control 服务器的 IP 地址
token string Y Total Control TOKEN
device string Y 主控设备对象值 id
返回示例:

成功,则返回:

{"status":true,
"value":{
	"name":"mobile1",
	"IP":"10.0.2.11",
	"IMEI":"868146021323359",
	"DPI":"320",
	"No":2,
	"displayMode":2,
	"SN":"JTJ4C15717001224",
	"width":720,
	"height":1280,
	"androidVersionRelease":"5.1.1",
	"androidVersionSdkInt":22,
	"manufacturer":"HUAWEI",
	"model":"msm8909",
	"id":"device@230441652",
	"colorbits":32,
	"foregroundapp":"com.huawei.android.launcher",
	"orientation":0,
	"sdcard":"/sdcard",
	"tmp_path":"/data/local/tmp",
	"acceleration":1,
	"projection":false
}
}

失败,则返回:

{
    "status": false
}
字段 类型 描述
status boolean true:成功; false:失败
name string 设备名称
IP string IP地址
IMEI string IMEI 号
DPI string 屏幕的像素尺寸
No int 获取当前操作设备,返回设备序号,在多控中心,返回设备序号,比如1,2,3,不在多控中心就返回 0.
DPI int 获取当前设备展现模式,返回 1 表示 WDM,即 Total Control Windows 界面,返回 2 表示 MDCC,即多控中心
SN string 唯一编号
width int 屏幕分辨率宽度
height int 屏幕分辨率高度
androidVersionRelease string Android 版本
androidVersionSdkInt string Android SDK 版本
manufacturer string 制造商名称
model string 型号
id string ID值
colorbits int 颜色位
foregroundapp string 当前手机前台运行的应用程序包名
orientation int 屏幕方向,0:竖屏;1:横屏
sdcard string SDCARD 路径
tmp_path string 临时目录路径
acceleration int 当前设备使用的渲染模式,0 – GDI; 1 – D3D;2 – OpenGL.
projection boolean 是否支持 projection 投屏,false 不支持,true 支持


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

示例:获取设备属性

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

RingoJS 请求示例:

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

//导入一些 ringoJS 的包
var {request} = require('ringo/httpclient');
var base64 = require('ringo/base64');
//将用户名密码编码,'sigma:3D391497'是用户名和密码,在Total Control系统设置里面可以看到
var userpass = base64.encode('sigma:3D391497');

//第一步:获取 Total Control 脚本开发所用的开发 token
var gettoken = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/login',
    headers: {'Authorization': userpass}
	});
//将获取的响应内容转换成json对象
var ret_token = eval('(' + gettoken.content + ')'); 
var token = ret_token.value.token; 
print("//获取 token 的值为:" + token);

//第二步:获取当前主控设备 ID 值
var getdevice = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/devices/main?token=' + token
	});
var device = eval('(' + getdevice.content + ')').id; 
print("//获取到设备的 ID:"+ device);

//第三步:获取设备属性
var ret = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/devices/'+ device,
    data: {
	"token": token
	}
	});
print(ret.content);
温馨提示:
获取 Total Control 脚本开发所用的开发 token 请看这里
获取主控设备 id 值 请看这里

RingoJS 示例运行结果:

成功,则返回:

//获取 token 的值为:m195zZEgY91PMcbo
//获取到设备的 ID:device@33254183
{
	"status": true,
	"value": {
		"name": "MOBILE1",
		"IP": "10.0.2.13",
		"IMEI": "867065021807297",
		"DPI": "320",
		"SN": "7N2SQL154X038444",
		"width": 720,
		"height": 1280,
		"androidVersionRelease": "5.1.1",
		"androidVersionSdkInt": 22,
		"manufacturer": "HUAWEI",
		"model": "HUAWEI P7-L07",
		"id": "device@33254183",
		"colorbits": 32,
		"orientation": 0,
		"sdcard": "/sdcard",
		"tmp_path": "/data/local/tmp",
		"acceleration": 1,
		"projection": false
	}
}
易语言请求示例:

温馨提示,关于易语言的更多信息,请看:
如何安装易语言
学写第一个易语言程序
如何使用易语言控制一台设备
如何使用易语言控制多台设备


.版本 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']”)
        输出调试文本 (“获取的设备 ID 值为: ” + device)
        bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/devices/” + device + “?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"}
* 获取的设备 ID 值为: device@230441652
* 第三步,获取设备属性,返回值为: {"status":true,"value":{"name":"sigma_mobile1","IP":"10.0.2.11","IMEI":"868146021323359","DPI":"320","SN":"JTJ4C15717001224","width":720,"height":1280,"androidVersionRelease":"5.1.1","androidVersionSdkInt":22,"manufacturer":"HUAWEI","model":"msm8909","id":"device@230441652","colorbits":32,"foregroundapp":"com.huawei.android.launcher","orientation":0,"sdcard":"/sdcard","tmp_path":"/data/local/tmp","acceleration":1,"projection":false}}
* 恭喜你,成功了!