1.1 对象定义
Go to 对象定义.
1.2 准备工作
如果你还没有 BroadLink DNA kit 模块,请联系我们咨询如何获取模块。
如果你还没有建立一个产品,请登录我们的开发者平台注册账号,进行产品的建立,测试与发布。
为了设备的安全,所有使用 SDK 的用户必须向 BroadLink Co., Ltd.
申请 License
,License
与应用的包名(packageName
)相关联,不同的应用包名需要申请不同的 License
。
- 进入
BroadLink DNA kit
开发者平台。 - 登录账号,没有账号请先注册。
- 选择
我的 SDK
。 - 选择
License 申请
->新建 License 申请
,按要求填写信息,若要控制第三方厂家设备,请在备注中说明厂家名称以及具体产品型号,提交审核。 - 审核通过之后,可以在申请页面看见
License
。
1.3 SDK集成方法
将SDK压缩包内的JAR文件和so文件导入到工程中,SDK 支持 Android2.3.1
以后版本,支持 armeabi/armeabi-v7a/arm64-v8a/mips/mips64/x86_64/x86
指令集。
Android 平台使用 NetworkAPI.getInstanceBLNetwork(Content content)
进行 SDK 实例化,SDK 为单例模式。
在使用 SDK 时,应用需要如下权限:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
SDK 支持 iOS6.0
以后版本, 支持 armv7/armv7s/arm64/i386/x86_64
指令集。
iOS 平台使用 [[BLSmartHomeAPI sharedDNASDK] sdkInit:[param toJSONString]]
进行 SDK 实例化,SDK 为单例模式。
1.4 SDK初始化
public String sdkInit(String params);
params: {
"loglevel": 0, // SDK日志打印级别
"license": "xxxxxxxxxxxxx", // 申请的License
"packageName": "cn.com.broadlink.SDKDemo" // 申请License时的应用包名
}
return: {
"status": 0,
"msg": "init success"
}
1.5 EasyConfig配置API
设备开始配网
public String deviceEasyConfig(String action, String params)
action: ConfigStart
params:
{
"ssid":"Broadlink", // wifi ssid
"password":"12345678", // wifi密码
"timeout": 60, // 配置超时时间,单位秒
"cfgversion": 2 // 配网版本
}
return:
{
"status":0,
"msg": "success", //配网结果
"mac": "00:11:22:33:44:55" //配网设备MAC
}
设备取消配网
public String deviceEasyConfig(String action, String params)
action: ConfigCancel
params:
{
}
return:
{
"status":0,
"msg": "success", //配网结果
}
1.6 soft-ap 模式API
获取设备支持的AP列表
public String deviceAPConfig(String action, String params)
action: ScanAPList
params:
{
"timeout": 7000, // 扫描AP列表超时时间,推荐7000ms
}
return:
{
"status":0,
"msg": "success", //扫描结果
"list": [
APInfo //AP信息
]
}
AP配网
public String deviceAPConfig(String action, String params)
action: APConfig
params:
{
"APInfo": APInfo
}
return:
{
"status":0,
"msg": "success", //配置结果
}
1.7 设备发现API
public String deviceProbe(String action, String params)
action: DeviceProbe
params:
{
"scantime": 3000, // 搜索设备的超时时间,默认 3000ms
"version": 1,
"pids" : [
// 搜索指定设备Pid列表,默认为空,不限制设备Pid
],
}
return:
{
"status":0,
"msg": "success", // 搜索结果
"list": [
deviceInfo // 搜索到的设备列表
]
}
1.8 配对API
public String devicePair(String action, String params)
action: DevicePair
params:
{
"deviceInfo": deviceInfo // Probe搜索到的设备信息
"timeout": 3000, // 配对超时实际,默认3000ms
"version": 1 // 配对版本
}
return:
{
"status":0,
"msg": "success",
"devicePairedInfo": devicePairedInfo //配置成功上的设备信息
}
public String devicePair(String action, String params)
action: CloudPair
params:
{
"deviceInfo": deviceInfo // Probe搜索到的设备信息
"timeout": 3000, // 配对超时实际,默认3000ms
"version": 1 // 配对版本
}
return:
{
"status":0,
"msg": "success",
"payload": {
"deviceToken":"xxxxxxx",
"deviceInfo":"xxxxxxx",
"deviceid":"xxxxxx"
}
}
1.9 设备控制API
public String deviceControl(String action, String params)
action: RM_Panel_Test
params:
{
"devicePairedInfo": devicePairedInfo // 配置成功上的设备信息
"data" : { // 云端返回信息
"pid":"", // 设备类型
"ircodeid":"", // 红外码ID
"timestamp":1514736000000, // 云端返回测试时间戳
"ircode": {
"name": "打开空调", //本条红外码功能名称
"function":"on", //本条红外码功能
"desc":"xxx", //本条红外码描述信息
"code":"2600121343241325243521342342141" //红外码值
}
}
"version": 1 // 配对版本
}
return:
{
"status":0,
"msg": "success",
"devicePairedInfo": devicePairedInfo // 新返回创建的设备信息
}
public String deviceControl(String action, String params)
action: dev_passthrough
params:
{
"devicePairedInfo": devicePairedInfo // 配置成功上的设备信息
"command": "xxxxxx" // 透传指令,BASE64 EnCode
"version": 1 // 配对版本
}
return:
{
"status":0,
"msg": "success",
"command": "xxxxxxxxx" // 透传返回指令,BASE64 EnCode
}