氦氪HEKRMobile Android API文档
关键词
- S表达式(SEXP):准确地说是lambdaTM代码,SEXP既是代码也是数据,这对于理解指令和后续描述的一些场景非常重要
- user_token: 用户授权识别码,用户的accesskey
- device_token: 设备授权识别码,设备的accesskey
- hekr-config : Wi-Fi 一键配置
- M1: Hekr Android SDK API
源码下载地址
SDK(android):https://github.com/HEKR-Cloud/HEKR-ANDROID-SDK
APP样例(andorid):https://github.com/HEKR-Cloud/HEKR-ANDROID-APP
流程说明
1. 首先通过webview形式实现登录,参考云端api C1-1,并获取cookie
2. 通过云端api来获取列表数据,通过socket或者websocket形式来控制设备,获取实时状态数据
3. LambdaTM sdk来解析sexp数据
M1 Android SDK接口说明
M1-1 HekrConfig(Wi-Fi 一键配置)
import com.hekr.android.app.util.HekrConfig;
HekrConfig.hekrconfig( ssid , password , mtime );
WIFI 一键配置
参数
ssid
必选;wifi ssidpassword
必选;wifi 密码mtime
可选;毫秒时间,每隔n个毫秒发送一个数据包;延缓路由器压力。
返回参数
- 无
M1-2 等待设备连接路由器后发送数据(参考E2 UDP接口说明)
import com.hekr.android.app.util.UDPConfig;
import java.net.DatagramPacket;
DatagramPacket dp = UDPConfig.waitDevice ( mtime );
参数
mtime
等待时间(毫秒)
返回参数
DatagramPacket
udp数据包
M1-3 局域网内对设备设置accesskey(参考E2-2 设备授权)
import com.hekr.android.app.util.UDPConfig;
import java.net.DatagramPacket;
DatagramPacket dp = UDPConfig.setAccessKey ( ip , ak , tid , mtime ) ;
请求参数
ip
ip地址accesskey
设置设备的accesskeytid
设备唯一IDmtime
等待超时毫秒
返回参数
DatagramPacket
udp数据包
M1-4 内网发现设备(参考 E2-1 发现设备)
import com.hekr.android.app.util.UDPConfig;
import java.net.DatagramPacket;
DatagramPacket dp = UDPConfig.discover( tid,option,timeout );
请求参数
tid
tid 设备唯一idoption
可选,填写 ""timeout
发现设备超时时间
返回参数
DatagramPacket
udp数据包
M1-5 内网控制设备
通过内网发现设备后,往设备ip的10000端口发送lisp控制指令即可控制; 或者通过发送
(uartdata "串口透传数据")
可控制设备; 串口透传数据请参考[氦氪HEKR模块透传协议]
M1-6 软ap 连接路由
参考E3-3 接口api
boolean ret = HekrConfig.softapSetBridge( ssid , password );
请求参数
ssid
ssidpassword
Wi-Fi 密码
返回参数
- true/false 成功/失败
M1-7 软ap 设置accesskey
参考E3-1 接口api
boolean ret = HekrConfig.softapSetAccessKey( accesskey );
请求参数
accesskey
设备的accesskey
返回参数
- true/false 成功/失败
M1-8 软ap 扫描路由列表
参考E3-2 接口api
List lst = HekrConfig.softapList( );
返回参数
- 路由列表 , 失败返回null
工具类介绍
M1-10 Wi-Fi 一键配置工具类
HekrConfig hc = new HekrConfig( device_accesskey );
Object ret = hc.config(ssid,password); //一键配置Wi-Fi,此方法调用会进入循环,代码会阻塞状态
hc.stop();//停止发送配置
M1-11 Hekr 用户工具类
通过登录获得云端授权 cookie后,可以使用以下流程
HekrUser user = new HekrUser(cookie);
boolean getKey = user.generateAccessKey();//获取用户和设备的accesskey,C1-2 API
List devlist = user.list();//获取设备列表,必须要获取accesskey成功后调用,C1-3 API
String ukey = user.getUserAccessKey();//用户的accesskey
String dkey = user.getDeviceAccessKey();//设备的accesskey
boolean ret = user.deviceRename(tid,"测试名字");//通过tid修改设备名字,C1-5 API
ret = user.deviceDelete( tid );//删除设备,C1-4 API
ret = user.deviceActivate(key,"1.0",time);//无属住激活设备,C1-7 API