-
Notifications
You must be signed in to change notification settings - Fork 30
Home
##MiCOSDK开发指南
这里有测试Demo,传送门
##概述
想通过APP远程控制一个智能设备,您需要FAE的支持,如果WIFI模块(硬件)已经准备就绪,那么您只需要完成以下几步
1、通过Fogcloud平台注册一个APP,得到appid,因为下面需要用到
2、对于一个新用户而言,首先需要注册用户,获取验证码、验证验证码、注册登录等,这些都在MiCOUser部分
3、注册完成后,我还没有一个可以控制的设备,我需要绑定一个设备,绑定之前需要先让设备连上WIFI路由器,这些都在MiCODevice部分
1)让设备连上路由器(EasyLink),
2)连上以后找到这个设备的IP(SearchDevice),
3)绑定她(bindDevice)
4、我可以将我名下的设备分享给别人使用,这些在ManageDevices部分
###添加授权
compile 'io.fogcloud.sdk:fog2_sdk:0.1.0'
##**MiCO** 全局设置 ##**MiCOUser** 用户管理
基础功能
##**MiCODevice** 设备管理设备配网
搜索设备
绑定设备
__设备管理__权限管理
__远程控制__ __任务管理__#**init** 初始化host,因为连接的服务器分为测试环境和生产环境
init(String host)
#####params
参数名 | 类型 | 描述 |
---|---|---|
host | String | 服务器的域名(默认为https://v2.fogcloud.io) |
######示例代码
MiCO.init("https://v2.fogcloud.io");
getVerifyCode(String loginname, String appid, MiCOCallBack micocb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
loginName | String | 登录名,邮箱或者手机号 |
appid | String | 在Fogcloud平台注册的APP的id |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "验证邮件已发送",
"code": 23000
},
"data": {
}
}
######示例代码
MiCOUser micoUser = new MiCOUser();
String loginname = "13122222222";
String appid = "81d79316-bb5a-11e5-a739-00163e0204c0";
micoUser.getVerifyCode(loginname, appid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
checkVerifyCode(String loginname, String vercode, String appid, MiCOCallBack micocb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
loginName | String | 登录名,邮箱或者手机号 |
vercode | String | 手机收到的验证码 |
appid | String | 在Fogcloud平台注册的APP的id |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"token": "eyJhVlSV8I...",
"clientid": "xxx-deaa-11e5-a739-00163e0204c0"
}
#####示例代码
MiCOUser micoUser = new MiCOUser();
String loginname = "13122222222";
String vercode = "556897";
String appid = "81d79316-bb5a-11e5-a739-00163e0204c0";
micoUser.checkVerifyCode(loginname, vercode, appid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
setPassword(String password, String appid, MiCOCallBack micocb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
password | String | 登录名,邮箱或者手机号 |
appid | String | 在Fogcloud平台注册的APP的id |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "用户密码修改成功",
"code": 0
},
"data": {
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCOUser micoUser = new MiCOUser();
String password = "123456";
String appid = "81d79316-bb5a-11e5-a739-00163e0204c0";
String token = "xxx81d79316-bb5a-11e5-a739-00163e0204c0xxx";
micoUser.register(password, appid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
login(String phone, String password, String appid, MiCOCallBack micocb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
loginName | String | 登录名,邮箱或者手机号 |
password | String | 用户密码 |
appid | String | 在Fogcloud平台注册的APP的id |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"token": "eyJhbGcMCPNKJI...",
"clientid": "xxx-deaa-11e5-a739-00163e0204c0"
}
#####示例代码
MiCOUser micoUser = new MiCOUser();
String userName = "13122222222";
String password = "123456";
String appid = "81d79316-bb5a-11e5-a739-00163e0204c0";
micoUser.login(userName, password, appid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
refreshToken(String token, MiCOCallBack micocb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
token | String | 用户登录后服务器端返回的token值,一般保存在localstorege里,以便下一次获取使用 |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"token": "eyJhbGcMCPNKJI...",
"clientid": "xxx-deaa-11e5-a739-00163e0204c0"
}
#####示例代码
MiCOUser micoUser = new MiCOUser();
String userToken = "XXX...";
micoUser.refreshToken(userToken, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
##以下是设备管理部分
#**getSSID** 获取当前手机连接的WIFI的名称,即ssidString getSSID()
#####callback ssid
- 类型:String
- 描述:当前WIFI的名称
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
Log.d(TAG, micodev.getSSID());
startEasyLink(String ssid, String password, int runSecond, int sleeptime, EasyLinkCallBack easylinkcb, String extraData)
#####params
参数名 | 类型 | 描述 |
---|---|---|
ssid | String | 准备发送的ssid |
password | String | SSID对应的WIFI密码 |
isSendIP | boolean | 是否发送手机的ip给设备,默认false不发送 |
runSecond | int | 发送持续的时间,到点了就停止发送, 单位ms |
sleeptime | int | 每包数据的间隔时间,建议未20, 单位ms |
extraData | String | 需要发送给设备的额外信息 |
#####callback easylinkcb
- 类型:EasyLinkCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String ssidStr = "mxchip";
String passwordStr = "123456";
int runs = 10000; //发送10秒即关闭
micodev.startEasyLink(ssidStr, passwordStr, runs, new EasyLinkCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
stopEasyLink(EasyLinkCallBack easylinkcb)
#####callback easylinkcb
- 类型:EasyLinkCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
micodev.stopEasyLink(new EasyLinkCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
当然,前提是手机和设备必须在同一个网段
startSearchDevices(String serviceName, SearchDeviceCallBack searchdevcb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
serviceName | String | 不可为空, 一般"_easylink._tcp.local."只要你使用的是庆科的模块,这个名字是不会变的 |
#####callback searchdevcb
- 类型:SearchDeviceCallBack
- 描述:接口调用成功后的回调函数
[
{
"Name": "EMW3081 Module#DA3F8E",
"IP": "192.168.31.114",
"Port": 8002,
"MAC": "C8:93:46:DA:3F:8E",
"Firmware Rev": "fog_3081_probe_device@002",
"FogProductId": "3311097c-17f5-11e6-a739-00163e0204c0",
"IsEasylinkOK": "false",
"IsHaveSuperUser": "false",
"RemainingUserNumber": "3",
"Hardware Rev": "3081",
"MICO OS Rev": "30810002.049",
"Model": "EMW3081",
"Protocol": "com.mxchip.fog",
"Manufacturer": "MXCHIP Inc.",
"Seed": "135"
}
]
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String serviceName = "_easylink._tcp.local.";
micodev.startSearchDevices(serviceName, new SearchDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, message);
}
@Override
public void onDevicesFind(JSONArray deviceStatus) {
if (!deviceStatus.equals("")) {
Log.d(TAG, deviceStatus.toString());
}
}
});
stopSearchDevices(SearchDeviceCallBack searchdevcb)
#####callback searchdevcb
- 类型:SearchDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
micodev.stopSearchDevices(new SearchDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
});
bindDevice(String ip, String port, ManageDeviceCallBack managedevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
ip | String | 即将绑定的设备的IP |
port | String | 设备服务的端口 |
#####callback managedevcb
- 类型:ManageDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "设备重新被绑定",
"code": 0
},
"data": {
"devicepw": "2665",
"deviceid": "e79f0250-ea5e-11e5-a739-00163e0204c0",
"devicename": "开心手环"
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String ip = "192.168.1.123";
String port = "8002";
String token = "xxx...";
micodev.bindDevice(ip, port, new ManageDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
1)如果是普通用户或者普通管理员,解绑只会解绑自己和设备的绑定关系
2)如果是超级管理员,那么解绑后,所有人均不能控制这个设备了
unBindDevice(String deviceid, final ManageDeviceCallBack managedevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
#####callback managedevcb
- 类型:ManageDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "超级用户解除成功",
"code": 0
},
"data": {
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String deviceid = "f71246d8-b9db-11e5-a739-00163e0204c0";
String token = "xxx...";
micodev.unBindDevice(deviceid, new ManageDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, message);
}
}, token);
getDeviceList(MiCOCallBack micocb, String token)
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCOUser micoUser = new MiCOUser();
String token = "xxx...";
micoUser.getDeviceList(new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
getDeviceInfo(String deviceid, MiCOCallBack micocb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "设备信息。",
"code": 0
},
"data": {
"alias": "爱焙客",
"online": false,
"devicepw": "7176"
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String deviceid = "f71246d8-b9db-11e5-a739-00163e0204c0";
String token = "xxx...";
micodev.getDeviceInfo(deviceid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
}
@Override
public void onFailure(int code, String message) {
}
}, token);
updateDeviceAlias(String deviceid, String alias, ManageDeviceCallBack managedevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
alias | String | 设备名称 |
#####callback managedevcb
- 类型:ManageDeviceCallBack
- 描述:接口调用成功后的回调函数
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String deviceid = "f71246d8-b9db-11e5-a739-00163e0204c0";
String alias = "好名字";
String token = "xxx...";
micodev.updateDeviceAlias(deviceid, alias, new ManageDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
getShareVerCode(String deviceid, ManageDeviceCallBack managedevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
token | String | 用户登录后获取的token |
#####callback managedevcb
- 类型:ManageDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String deviceid = "f71246d8-b9db-11e5-a739-00163e0204c0";
String token = "xxx...";
getShareVerCode(deviceid, new ManageDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
addDeviceByVerCode(ShareDeviceParams sdevp, ManageDeviceCallBack managedevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
sdevp | ShareDeviceParams | ShareDeviceParams至少包含以下的信息 |
#####ShareDeviceParams
参数名 | 类型 | 描述 |
---|---|---|
bindvercode | String | getShareVerCode接口获取的sharcode |
role | int | 1超级用户 3普通用户 2管理员 |
bindingtype | String | 绑定类型 sa 超级用户 home 家庭用户 guest 访客 other 其他 |
iscallback | boolean | 是否返回绑定状态,此版本请都设置为false |
#####callback managedevcb
- 类型:ManageDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "您是超级用户,无法更新授权",
"code": 23102
},
"data": {
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ShareDeviceParams sdevp = new ShareDeviceParams();
sdevp.bindvercode = "xxx...";
sdevp.role = 3;
sdevp.bindingtype = "home";
sdevp.iscallback = false;
String token = "xxx...";
micodev.addDeviceByVerCode(sdevp, new ManageDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
}, token);
addSubDevice(String deviceid, String productid, int timeout, String extend, MiCOCallBack micocb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | string | 父设备ID(网关设备) |
productid | string | 子设备产品ID,可为空 |
timeout | int | 父设备等待的超时间 |
extend | json string | 扩展字段(可为空) |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "notice gateway to add sub device successfully.",
"code": 0
},
"data": {
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
micodev.addSubDevice(deviceid, "", 10, "", new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
sendCommandSub(CommandPara cmdpara, final ControlDeviceCallBack ctrldevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
subdeviceid | string | 子设备ID |
devicepw | string | 子设备密码 |
command | json string | 下发的指令 |
format | string | payload格式,目前固定值为“json”,可为空 |
flag | int | 功能启用标识,可为空。(flag采用各bit位是否为1标识是否启用对应的功能,对应关系如下: 0位→是否发送mqtt消息到设备topic(c2d/deviceid/commands) 1位→是否将payload数据存入数据库 默认情况下会发送mqtt消息和存储payload到数据库),如果既要保存进数据库又要发送给设备,那么flag为3 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "Send command successfully",
"code": 0
},
"data": {
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
CommandPara cmdPara = new CommandPara();
cmdPara.deviceid = deviceid;
cmdPara.devicepw = devicepw;
cmdPara.command = "{}";
micodev.sendCommandSub(cmdPara, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
getMemberList(String deviceid, MiCOCallBack micocb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "成功根据设备ID获取用户列表",
"code": 0
},
"data": "[
{
"enduserid": "e32bd592-1bf8-11e6-a739-00163e0204c0",
"phone": "",
"email": "[email protected]",
"nickname": "",
"realname": "",
"is_active": true,
"app": "db456b4a-17fc-11e6-a739-00163e0204c0"
}
]"
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodevice = new MiCODevice(MyListViewActivity.this);
String deviceid = "xxx-b9db-11e5-a739-00163e0204c0";
String token = "xxx...";
micodevice.getMemberList(deviceid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "getMemberList", message);
setAdapter(message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, message);
}
}, token);
removeBindRole(String deviceid, String enduserid, MiCOCallBack micocb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
enduserid | String | 用户的id |
#####callback micocb
- 类型:MiCOCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"message": "用户解除成功",
"code": 0
},
"data": {
"enduserid": "xxx-fbc5-11e5-a739-00163e0204c0"
}
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后获取的token
#####示例代码
MiCODevice micodevice = new MiCODevice(MyListViewActivity.this);
String mdeviceid = "xxx-b9db-11e5-a739-00163e0204c0";
String menduserid = "xxx11e5-a739-00163e0204c0";
String token = "xxx...";
micodevice.removeBindRole(mdeviceid, menduserid, new MiCOCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, message);
}
},token);
startListenDevice(ListenDevParFog listendevparams, ControlDeviceCallBack ctrldevcb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
listendevparams | ListenDevParFog | ListenDevParFog至少包含以下的信息 |
#####ShareDeviceParams
参数名 | 类型 | 描述 |
---|---|---|
deviceid | String | 设备的deviceid |
host | String | 云端的host地址,默认为"mqtt.fogcloud.io" |
port | String | 云端的port,默认为"1883" |
userName | String | enduserid |
passWord | String | devicepw, 与用户密码相同,或者与注册验证码相同 |
clientID | String | enduserid,即用户登录后获取的enduserid |
isencrypt | boolean | 是否使用SSL加密 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ListenDevParFog listendevparams = new ListenDevParFog();
listendevparams.deviceid = "f71246d8-b9db-11e5-a739-00163e0204c0";
listendevparams.host = "http://101.201.101.153";
listendevparams.port = "1883";
listendevparams.userName = enderuserid;
listendevparams.passWord = "123456";
listendevparams.clientID = enderuserid;
listendevparams.isencrypt = false;
micodev.startListenDevice(listendevparams, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG, message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG, code + " " + message);
}
@Override
public void onDeviceStatusReceived(int code, String messages) {
Log.d("---" + code + "---", messages);
}
});
#####params
参数名 | 类型 | 描述 |
---|---|---|
subdeviceid | string | 子设备ID |
devicepw | string | 子设备密码 |
command | json string | 下发的指令 |
format | string | payload格式,目前固定值为“json”,可为空 |
flag | int | 功能启用标识,可为空。(flag采用各bit位是否为1标识是否启用对应的功能,对应关系如下: 0位→是否发送mqtt消息到设备topic(c2d/deviceid/commands) 1位→是否将payload数据存入数据库 默认情况下会发送mqtt消息和存储payload到数据库),如果既要保存进数据库又要发送给设备,那么flag为3 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
#####token
- 类型:String, 不可为空
- 描述:用户的token
#####示例代码
CommandPara cmdPara = new CommandPara();
cmdPara.deviceid = deviceid;
cmdPara.devicepw = devicepw;
cmdPara.command = "{}";
micodev.sendCommandSub(cmdPara, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
addDeviceListener(String topic, int qos, ControlDeviceCallBack ctrldevcb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
topic | String | 需要定义的topic |
qos | int | 0 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
String topic = "xxx...";
int qos = 0;
micodev.addDeviceListener(topic, qos, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
});
removeDeviceListener(String topic, ControlDeviceCallBack ctrldevcb)
#####params
参数名 | 类型 | 描述 |
---|---|---|
topic | String | 需要定义的topic |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
String topic = "xxx...";
micodev.removeDeviceListener(topic, qos, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
});
stopListenDevice(ControlDeviceCallBack ctrldevcb)
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
micodev.stopListenDevice(new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onDestroy onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onDestroy onFailure", code + " " + message);
}
});
createScheduleTask(ScheduleTaskParam stp, ControlDeviceCallBack ctrldevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
stp | ScheduleTaskParam | ScheduleTaskParam至少包含以下的信息 |
#####ScheduleTaskParam
参数名 | 类型 | 描述 |
---|---|---|
device_id | String | 设备的device id |
commands | String | 控制指令 |
enable | boolean | 当前task,True 启用 False 暂停 |
day_of_week | String | 周 默认为“*” |
hour | String | 小时 |
minute | String | 分 |
时间参数说明:
星期,取值:
周一:0
周二:1
周三:2
周四:3
周五:4
周六:5
周日:6
“*”:每天
不传:单次任务
(例如“0,1,2”表示周一 周二 周三)
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{"data":"ec49e83a-1103-11e6-a739-00163e0204c0"}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token值,一般保存在localstorege里,以便下一次获取使用
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ScheduleTaskParam stp = new ScheduleTaskParam();
stp.device_id = "d95366fe-06c0-11e6-a739-00163e0204c0";
stp.commands = "{\"KG_Start\":\"1\",\"WorkMode\":\"1\"}";
stp.enable = true;
stp.day_of_week = "*";
stp.hour = "*";
stp.minute = "*";
// 以上参数说明每分钟执行一次,
// 示例:
// minute = "10", 每小时的第10分钟执行一次
// day_of_week = "1,2,3", hour = "11", minute = "30", 每周的周二,周三,周四的11点30分钟执行一次指令
// 更详细的参数说明,参考《Linux crontab定时执行任务》
micodev.createScheduleTask(stp, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
creatDelayTask(ScheduleTaskParam stp, ControlDeviceCallBack ctrldevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
stp | ScheduleTaskParam | ScheduleTaskParam至少包含以下的信息 |
#####ScheduleTaskParam
参数名 | 类型 | 描述 |
---|---|---|
device_id | String | 设备的device id |
commands | String | 控制指令 |
enable | boolean | 当前task,True 启用 False 暂停 |
second | String | 秒 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{"data":"ec49e83a-1103-11e6-a739-00163e0204c0"}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ScheduleTaskParam stp = new ScheduleTaskParam();
stp.device_id = "d95366fe-06c0-11e6-a739-00163e0204c0";
stp.order = "{\"KG_Start\":\"1\",\"WorkMode\":\"1\"}";
stp.enable = true;
stp.second = 100;
micodev.creatDelayTask(stp, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
getTaskList(String deviceid, int taskType, ControlDeviceCallBack ctrldevcb, String token)
#####params 参数名 | 类型 | 描述 device_id | String | 设备的device id taskType | int | 任务类型 0 定时任务, 1 延时任务
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{"data":"ec49e83a-1103-11e6-a739-00163e0204c0"}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
micodev.getTaskList("d95366fe-06c0-11e6-a739-00163e0204c0", 1, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuc", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFai", code + " " + message);
}
}, token);
deleteTask(String deviceid, String taskid, ControlDeviceCallBack ctrldevcb, String token)
#####params 参数名 | 类型 | 描述 device_id | String | 设备的device id taskid | String | 任务的名字
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"msg": "成功删除task:8b95b17c-20bc-11e6-a739-00163e0204c0",
"code": 0
},
"data": "8b95b17c-20bc-11e6-a739-00163e0204c0"
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
String deviceid = "d95366fe-06c0-11e6-a739-00163e0204c0";
String taskid = "ff9c5c3a-2097-11e6-a739-00163e0204c0";
micodev.deleteTask(deviceid, taskid, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuc", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFai", code + " " + message);
}
}, token);
updateScheduleTask(ScheduleTaskParam stp, ControlDeviceCallBack ctrldevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
stp | ScheduleTaskParam | ScheduleTaskParam至少包含以下的信息 |
#####ScheduleTaskParam
参数名 | 类型 | 描述 |
---|---|---|
device_id | String | 设备的device id |
task_id | String | 任务的名字 |
commands | String | 控制指令 |
enable | boolean | 当前task,True 启用 False 暂停 |
day_of_week | String | 周 默认为“*” |
hour | String | 小时 |
minute | String | 分 |
时间参数说明:
星期,取值:
周一:0
周二:1
周三:2
周四:3
周五:4
周六:5
周日:6
“*”:每天
不传:单次任务
(例如“0,1,2”表示周一 周二 周三)
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"msg": "修改任务成功",
"code": 0
},
"data": "5af8bb16-20b4-11e6-a739-00163e0204c0"
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ScheduleTaskParam stp = new ScheduleTaskParam();
stp.device_id = "d95366fe-06c0-11e6-a739-00163e0204c0";
stp.commands = "{\"KG_Bottom\":\"1\"}";
stp.task_id = "ff9c5c3a-2097-11e6-a739-00163e0204c0";
stp.enable = false;
stp.month = "*";
stp.day_of_week = "*";
stp.hour = "*";
stp.minute = "*";
micodev.updateScheduleTask(stp, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuc", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFai", code + " " + message);
}
}, token);
updateDelayTask(ScheduleTaskParam stp, ControlDeviceCallBack ctrldevcb, String token)
#####params
参数名 | 类型 | 描述 |
---|---|---|
stp | ScheduleTaskParam | ScheduleTaskParam至少包含以下的信息 |
#####ScheduleTaskParam
参数名 | 类型 | 描述 |
---|---|---|
device_id | String | 设备的device id |
task_id | String | 任务的名字 |
commands | String | 控制指令 |
enable | boolean | 当前task,True 启用 False 暂停 |
second | String | 秒 |
#####callback ctrldevcb
- 类型:ControlDeviceCallBack
- 描述:接口调用成功后的回调函数
{
"meta": {
"msg": "修改任务成功",
"code": 0
},
"data": "5af8bb16-20b4-11e6-a739-00163e0204c0"
}
#####token
- 类型:String, 不可为空
- 描述:用户登录后服务器端返回的token
#####示例代码
MiCODevice micodev = new MiCODevice(MainActivity.this);
ScheduleTaskParam stp = new ScheduleTaskParam();
stp.device_id = "d95366fe-06c0-11e6-a739-00163e0204c0";
stp.task_id = "ff9c5c3a-2097-11e6-a739-00163e0204c0";
stp.order = "{\"KG_Start\":\"1\",\"WorkMode\":\"1\"}";
stp.enable = true;
stp.second = 100;
micodev.creatDelayTask(stp, new ControlDeviceCallBack() {
@Override
public void onSuccess(String message) {
Log.d(TAG + "onSuccess", message);
}
@Override
public void onFailure(int code, String message) {
Log.d(TAG + "onFailure", code + " " + message);
}
}, token);
(完)