本地蓝牙mesh
初始化SDK
BleMesh SDK初始化
初始化时添加的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
context | Context | App环境上下文 | 可以在Application中传入 | 是 |
例子:
在Application onCreate方法中调用一下初始化方法:
IotBleSDK.init(this);
混淆配置文件
-downwarn com.iot.ble.**
-keep class com.iot.ble.**{*;}
-dontwarn no.nordicsemi.android.meshprovisioner.**
-keep class no.nordicsemi.android.meshprovisioner.**{*;}
-dontwarn org.spongycastle.**
-keep class org.spongycastle.**{*;}
\#Gson
-downwarn com.google.gson.**
-keep class com.google.gson.**{*;}
蓝牙相关
蓝牙状态监听
注册蓝牙状态监听。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
listener | Function | 回调函数 | 是 |
IotBleSDK. getBleMeshManager ().registerBluetoothStateListener(
new BluetoothStateListener() {
@Override
public void onStatusChanged(boolean flag) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
flag | boolean | 蓝牙状态 | true:打开 false:关闭 | 是 |
注销蓝牙状态监听:
IotBleSDK. getBleMeshManager().unregisterBluetoothStateListener(bluetoothStateListener);
扫描相关
扫描未配置节点
扫描没有加入到mesh网络的设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
scanSetting | ScanSetting | 扫描配置参数 | 只能设置超时时间。参数为null使用默 认值,默认值:20秒。 |
否 |
scanCallback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().scanProvisionedNodes(null, ScanCallback() {
@Override
public void onScanResult(ExtendedBluetoothDevice bluetoothDevice) {
// 扫描结果
}
@Override
public void onBatchScanResults(List<ExtendedBluetoothDevice> results) {
// 扫描结果集合
}
@Override
public void onScanFailed(int errorCode, String msg) {
// 扫描失败回调
}
@Override
public void onStopScan() {
//停止扫描回调。
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorCode | int | 错误码 | 参照错误码 | 否 |
msg | String | 错误信息 | 否 | |
bluetoothDevice | ExtendedBluetoothDevice | 返回成功信息 | 返回需求数据 | 是 |
bluetoothDevice参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 设备名称 | 是 | |
rssi | int | 设备的rssi值 | 是 | |
device | BluetoothDevice | 设备 | 是 | |
mScanedResult | ScanedResult | 设备的广播信息 | 是 | |
beacon | MeshBeacon | mesh广播包 | 是 |
扫描已配置节点
扫描已经加入到当前mesh网络的节点。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
scanSetting | ScanSetting | 扫描配置参数 | 只能设置超时时间。 参数为null使用默认值,默认值:20秒。 | 否 |
scanCallback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().scanProvisionedNodes(null, ScanCallback() {
@Override
public void onScanResult(ExtendedBluetoothDevice bluetoothDevice) {
// 扫描结果
}
@Override
public void onBatchScanResults(List<ExtendedBluetoothDevice> results) {
// 扫描结果集合
}
@Override
public void onScanFailed(int errorCode, String msg) {
// 扫描失败回调
}
@Override
public void onStopScan() {
//停止扫描回调。
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorCode | int | 错误码 | 参照错误码 | 否 |
msg | String | 错误信息 | 否 | |
bluetoothDevice | ExtendedBluetoothDevice | 返回成功信息 | 返回需求数据 | 是 |
bluetoothDevice参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 设备名称 | 是 | |
rssi | int | 设备的rssi值 | 是 | |
device | BluetoothDevice | 设备 | 是 | |
mScanedResult | ScanedResult | 设备的广播信息 | 是 | |
beacon | MeshBeacon | mesh广播包 | 是 |
停止扫描
停止当前的扫描操作。
IotBleSDK.getBleMeshManager().stopScan();
mesh网络相关
新建默认网络
创建默认网络,名字默认值为Mesh Network,globalTtl默认值为5。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().createDefaultMeshNetwork(
new ICallback<MeshNetwork>() {
@Override
public void onSuccess(MeshNetwork meshNetwork) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | MeshNetwork | 返回成功信息 | 返回需求数据 | 是 |
meshNetwork参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
networkName | String | 网络名称 | 默认值:Mesh Network。 | 是 |
globalTtl | int | 消息中继的次数 | 范围:0~127。 默认值:5。 | 是 |
isConnected | boolean | 网络连接状态 | 是 |
新建指定网络
创建指定网络名称和ttl值的网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 网络名称 | 是 | |
ttl | int | 消息中继的次数 | 值小于0则为5;值大于127则为127 | 是 |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().createMeshNetwork(name,ttl,
new ICallback<MeshNetwork>() {
@Override
public void onSuccess(MeshNetwork meshNetwork) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | MeshNetwork | 返回成功信息 | 返回需求数据 | 是 |
获取所有网络列表
获取已创建的网络列表。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().getMeshNetworkList(
new ICallback<List<MeshNetwork>>() {
@Override
public void onSuccess(List<MeshNetwork> meshNetworks) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回 成功信息 | 返回需求数据 | 是 |
修改网络名称
网络信息只能修改名称和ttl值。操作前提:已加载网络且在已加载的网络下执行。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
name | String | 新的名称 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().updateMeshNetworkName(
meshNetwork.getNetworkId(), name, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改网络的ttl
网络信息只能修改名称和ttl值。操作前提:已加载网络且在已加载的网络下执行。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
ttl | int | 新的ttl值 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().updateMeshNetworkTtl (
meshNetwork.getNetworkId(), ttl, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
删除网络
删除指定的网络,并清除网络下所有已配置的节点,包含重置节点功能。注意:网络无节点则直接删除;有节点则必须在已连接状态下删除,并且不管节点是否重置成功。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().deleteMeshNetwork (
meshNetwork.getNetworkId(),new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
加载网络
成功加载指定网络后,才能操作网络下的节点。同一时间只能加载一个网络,不能加载多个。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().loadingMeshNetwork (
meshNetwork.getNetworkId(), new ICallback<List<MeshNodeProvisioned>> () {
@Override
public void onSuccess(List<MeshNodeProvisioned> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
meshNodeProvisioned参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeId | String | 节点id | 是 | |
mac | String | 节点mac | 对应的设备mac | 是 |
nodeName | String | 节点名称 | 一般为设备名称 | 是 |
networkId | String | 网络id | 节点所在的网络 | 是 |
断开连接
断开网络的连接。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().disconnect ( new ISDKCallback() {
@Override
public void onSuccess(){
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
注册网络连接状态监听
连接状态监听,加载其他网络时会断开当前网络的连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
statusListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().registerBleConnectStatusListener (
new BleConnectStatusListener () {
@Override
public void onConnectStatusChanged(String networkId, int status){
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 参照错误码 | 是 |
status | int | 已连接: Constants.STATUS_CONNECTED 已断开: Constants.STATUS_DISCONNECTED |
是 |
注销网络连接状态监听
注销连接状态监听。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
statusListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().unregisterBleConnectStatusListener (statusListener);
节点相关
配置设备
对设备启动配置流程,使其加入当前mesh网络中。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
bluetoothDevice | ExtendedBluetoothDevice | 设备 | 扫描到的设备 | 是 |
produceId | int | 产品id | 是 | |
produceKey | String | 产品key | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().provisioningDevice(bluetoothDevice,
productId, productKey,new ICallback<MeshNodeProvisioned>() {
@Override
public void onSuccess(MeshNodeProvisioned meshNodeProvisioned) {
// 配置成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配置失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | MeshNodeProvisioned | 返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeId | String | 节点id | 是 | |
mac | String | 节点mac | 对应的设备mac | 是 |
nodeName | String | 节点名称 | 一般为设备名称 | 是 |
networkId | String | 网络id | 节点所在的网络 | 是 |
连接已配置节点
连接已经加入当前mesh网络的节点。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
bluetoothDevice | ExtendedBluetoothDevice | 设备 | 扫描到的设备 | 是 |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().connectToProvisionedNode (bluetoothDevice,
new ICallback<MeshNodeProvisioned>() {
@Override
public void onSuccess(MeshNodeProvisioned meshNodeProvisioned) {
// 连接成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 连接失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | MeshNodeProvisioned | 返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取当前网络已配置节点列表
获取当前网络下所有已配置的节点。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().getProvisionedNodes (
new ICallback<List<MeshNodeProvisioned>>() {
@Override
public void onSuccess(List<MeshNodeProvisioned> meshNodeProvisioneds) {
// 当前网络下已配置节点列表
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
重置节点
从当前网络移除节点,并且节点恢复到未配置状态。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().resetProvisionedNode(meshNodeProvisioned,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
清除节点
用来清除当前网络此节点信息,接口包含重置节点功能,但不管节点是否重置成功都会从网络中移除。一般情况下不建议使用,只有当设备主动重置,成为无效节点才使用。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().deleteProvisionedNode (meshNodeProvisioned,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
节点添加订阅
为节点添加订阅,当被订阅节点发布消息,订阅节点能接受到消息。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
mac | String | 被订阅节点的mac | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().subscribeProsionedNodeAdd (meshNodeProvisioned,
mac,new ISDKCallback() {
@Override
public void onSuccess() {
// 订阅成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 订阅失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
节点删除订阅
与被订阅节点解除订阅关系。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
mac | String | 被订阅节点的mac | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().subscribeProsionedNodeDel (meshNodeProvisioned,
mac,new ISDKCallback() {
@Override
public void onSuccess() {
// 解订阅成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 解订阅失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取节点订阅列表
获取节点下所有的订阅地址。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().getSubscribedList (meshNodeProvisioned,
mac,new ICallback<List<MeshNodeProvisioned>> () {
@Override
public void onSuccess(List<MeshNodeProvisioned> result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改节点名称
修改节点名称。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
newName | String | 新名称 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().updateProvisionedNodeName(meshNodeProvisioned, newName, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
数据通信
手机透传(push)消息给节点
手机向设备发送消息。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
bytes | byte[] | 二进制数据 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().sendPushData(mMeshNodeProvisioned, bytes,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
手机发送下行数据给节点
手机端下发命令控制设备,可以同时发送多条数据。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
构造功能点数据
MessageData.Builder builder = new MessageData.Builder();
// 只能添加一条数据
builder.put(key, value);
下发数据:
IotBleSDK.getBleMeshManager().sendCommandData (mMeshNodeProvisioned, builder,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
手机极速传输小数据给节点
每次只能给设备发送一条消息,提高数据传输效率。支持的数据类型:int、float、enum、bool。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
构造功能点数据
MessageData.Builder builder = new MessageData.Builder();
// 可以添加多条数据
builder.put(key, value);
下发数据:
IotBleSDK.getBleMeshManager().sendCommandData (mMeshNodeProvisioned, builder,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
接收节点发送的透传数据
节点主动发送二进制数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().registerPushListener(new PushListener(){
@Override
public void onPush(String networkId,String mac,byte[] data){
// 接收的二进制数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
data | byte[] | 二进制数据 | 是 |
注销接收节点发送的透传数据监听方法:
IotBleSDK.getBleMeshManager().unregisterPushListener(pushListener);
清除网络中透传数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的透传数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的透传数据监听方法。
*/
IotBleSDK.getBleMeshManager().clearPushListener(String networkId);
接收节点发送的上行数据
节点主动发送上行数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().registerCommandListener (new CommandListener(){
@Override
public void onCommand(String networkId,String mac, List<MessageData> dataList){
// 接收的上行数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
dataList | List |
上行数据 | 是 |
注销接收节点发送的上行数据监听方法:
IotBleSDK.getBleMeshManager().unregisterCommandListener(commandListener);
清除网络中上行数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的上行数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的上行数据监听方法。
*/
IotBleSDK.getBleMeshManager().clearCommandListener(String networkId);
接收节点极速传输的小数据
节点主动发送上行数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshManager().registerHighSpeedDataListener (
new HighSpeedDataListener (){
@Override
public void onReceive (String networkId,String mac, MessageData dataList){
// 接收的数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
dataList | MessageData | 上行数据 | 是 |
注销接收节点发送的极速数据监听方法:
IotBleSDK.getBleMeshManager().unregisterHighSpeedDataListener (dataListener);
清除网络中极速数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的极速数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的极速数据监听方法。
*/
IotBleSDK.getBleMeshManager().clearHighSpeedDataListener (String networkId);
云端蓝牙mesh SDK
初始化SDK
Iot SDK初始化
初始化时添加的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
context | Context | App环境上下文 | 可以在Application中传入 | 是 |
appId | String | 应用Id | 是 | |
appToken | String | 应用Token | 是 |
例子:
在Application onCreate方法中调用以下初始化方法(仅限主进程)
// 判断该当前进程的包名是否一致(主进程)
if (getApplicationInfo().packageName.equals(getCurProcessName(getApplicationContext()))) {
/**
\* 初始化SDK
*/
IotCloudSDK.init(Context context, String appId, String appToken);
// 初始化并且关联极光推送,目前使用极光推送,配合云端设置可以实现
// 事件的告警、消息通知等等
// 不需要App外推送的时候请不要调用此方法
// 注意调用此初始化方法时需要导入极光推送的相关SDK和so动态链接库
// 设备控制,命令发送等等和设备交互的功能和极光推送无关
// IotCloudSDK.initWithPush(Context context, String appId, String appToken);
IotCloudSDK.setNeedLoginListener(new IneedLoginListener() {
@Override
public void onNeedLogin(Context context) {
try {
// 目的是为了清空任务栈中的其他页面,强制用户登录
Intent intent = new Intent(context, 登录页面.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} catch (Exception e) {
Intent intent = new Intent(context, 登录页面.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
});
}
// 获取当前进程包名
public static String getCurProcessName(Context context) {
int pid = android.os.Process.myPid();
ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE);
for (ActivityManager.RunningAppProcessInfo appProcess : activityManager
.getRunningAppProcesses()) {
if (appProcess.pid == pid) {
return appProcess.processName;
}
}
return null;
}
BleMesh SDK初始化
初始化时添加的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
context | Context | App环境上下文 | 可以在Application中传入 | 是 |
例子:
在Application onCreate方法中调用一下初始化方法
IotBleSDK.init(Context context);
// 登陆官网账户资料里的用户token和用户id
IotBleSDK.getInstance().initCompanyInfo(String companyId,String companyKey);
//注册时返回的用户id、用户token
IotBleSDK.getInstance().initUserInfo(int userId, String userToken);
Iot SDK混淆配置文件
-dontwarn com.iot.cloud.**
-keep class com.iot.cloud.*{ ;}
-dontwarn com.d.c.b.a.**
-keep class com.d.c.b.a.*{ ;}
-dontwarn io.fogcloud.easylink.**
-keep class io.fogcloud.easylink.*{;}
-keep class javax.jmdns.*{;}
-dontwarn javax.jmdns.**
-keep class javax.servlet.*{;}
-dontwarn javax.servlet.**
-keep class org.eclipse.jetty.*{;}
-dontwarn org.eclipse.jetty.**
-keep class org.slf4j.*{;}
-dontwarn org.slf4j.**
-dontwarn com.hiflying.**
-keep class com.hiflying.*{;}
-dontwarn com.longthink.api.**
-keep class com.longthink.api.*{;}
-dontwarn mediatek.android.IoTManager.**
-keep class mediatek.android.IoTManager.* { ;}
-dontwarn com.google.gson.**
-keep class com.google.gson.*{;}
-dontwarn org.eclipse.paho.client.mqttv3.**
-keep class org.eclipse.paho.client.mqttv3.*{;}
BleMesh SDK混淆配置文件
-downwarn com.iot.ble.**
-keep class com.iot.ble.*{;}
-dontwarn no.nordicsemi.android.meshprovisioner.**
-keep class no.nordicsemi.android.meshprovisioner.*{;}
-dontwarn org.spongycastle.**
-keep class org.spongycastle.*{;}
#Gson
-downwarn com.google.gson.**
-keep class com.google.gson.*{;}
用户相关
手机用户注册
用户注册需要分两步,第一步是发送验证码到手机;第二步是使用验证码注册。
发送验证码到手机请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
phone | String | 手机号码 | 接收验证码的手机号 | 是 |
zone | String | 区号 | 传入”0086” 可以使用Zone.CN Zone是SDK中的一个类 目前只支持中国大陆 |
是 |
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().getRegisterSMSCode(phone, zone, new ISDKCallback() {
@Override
public void onSucess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
发送验证码到手机返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误信息 | 参照错误码 | 是 |
验证码注册请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
phone | String | 手机号码 | 接收验证码的手机号 | 是 |
password | String | 注册的账号密码 | 是 | |
smsCode | String | 手机接收到的验证码 | 是 | |
zone | String | 区号 | 传入”0086” 可以使用Zone.CN Zone是SDK中的一个类 目前只支持中国大陆 |
是 |
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().userRegister(phone, password, smsCode, zone
new ISDKCallback() {
@Override
public void onSucess() {
// 可以进入其他页面使用SDK了
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
验证码注册返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
邮箱用户注册
邮箱用户注册,需要先获取邮箱验证码,然后使用验证码注册。
获取邮箱验证码请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
String | 邮箱地址 | 是 | ||
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().getRegisterEmailCode(email,
new ISDKCallback() {
@Override
public void onSucess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
验证码返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
注册请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
String | 邮箱地址 | 是 | ||
password | String | 注册的账号密码 | 是 | |
code | String | 验证码 | 是 | |
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().registerEmail(email, password, code,
new ISDKCallback() {
@Override
public void onSucess() {
// 可以进入其他页面使用SDK了
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
验证码注册返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
手机用户登录
使用手机号与密码进行登录。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
phone | String | 手机号码 | 接收验证码的手机号 | 是 |
password | String | 注册的账号密码 | 是 | |
zone | String | 区号 | 传入”0086” 可以使用Zone.CN Zone是SDK中的一个类 目前只支持中国大陆 | 是 |
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().userLogin(phone, password, zone, new ISDKCallback() {
@Override
public void onSucess() {
// 可以调用其他接口使用SDK了
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
邮箱用户登录
使用邮箱与密码进行登录。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
String | 邮箱地址 | 是 | ||
password | String | 注册的账号密码 | 是 | |
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getUserManager().emailLogin(email, password, new ISDKCallback() {
@Override
public void onSucess() {
// 可以调用其他接口使用SDK了
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
切换用户
调用IotCloudSDK.logout();在IOT SDK登录状态介绍的方法处理新用户的登录注册等。
产品相关
获取产品信息
通过调用该接口获取所有产品信息。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
ISDKCallback | function | 回调函数 | 是 |
例子:
IotCloudSDK.getDeviceManager().getProductList(
new ISDKCallback>() {
@Override
public void onSucess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回成功信息 | 返回success或者需求数据 | 是 |
result列表里的参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
product_id | String | 产品的id | 是 | |
product_name | String | 产品名称 | 是 | |
productIcon | String | 产品的图标URL | 是 | |
productSmallIcon | String | 产品的小图标URL | 是 | |
productCategory | String | 产品的类别 | 是 | |
productKey | String | 产品的key | 是 |
蓝牙相关
蓝牙状态监听
注册蓝牙状态监听。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
listener | Function | 回调函数 | 是 |
IotBleSDK. getBleMeshCloudManager ().registerBluetoothStateListener(
new BluetoothStateListener() {
@Override
public void onStatusChanged(boolean flag) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
flag | boolean | 蓝牙状态 | true:打开 false:关闭 | 是 |
注销蓝牙状态监听:
IotBleSDK.getBleMeshCloudManager().unregisterBluetoothStateListener(bluetoothStateListener);
扫描相关
扫描未配置节点
扫描没有加入到mesh网络的设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
scanSetting | ScanSetting | 扫描配置参数 | 只能设置超时时间。 参数为null使用默认值,默认值:20秒。 | 否 |
scanCallback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().scanProvisionedNodes(null, ScanCallback() {
@Override
public void onScanResult(ExtendedBluetoothDevice bluetoothDevice) {
// 扫描结果
}
@Override
public void onBatchScanResults(List
// 扫描结果集合
}
@Override
public void onScanFailed(int errorCode, String msg) {
// 扫描失败回调
}
@Override
public void onStopScan() {
//停止扫描回调。
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorCode | int | 错误码 | 参照错误码 | 否 |
msg | String | 错误信息 | 否 | |
bluetoothDevice | ExtendedBluetoothDevice | 返回成功信息 | 返回需求数据 | 是 |
bluetoothDevice参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 设备名称 | 是 | |
rssi | int | 设备的rssi值 | 是 | |
device | BluetoothDevice | 设备 | 是 | |
mScanedResult | ScanedResult | 设备的广播信息 | 是 | |
beacon | MeshBeacon | mesh广播包 | 是 |
扫描已配置节点
扫描已经加入到当前mesh网络的节点。操作前提:开启网络;已加载**mesh**网络且在已加载的网络下执行。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
scanSetting | ScanSetting | 扫描配置参数 | 只能设置超时时间。 参数为null使用默认值,默认值:20秒。 | 否 |
scanCallback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().scanProvisionedNodes(null, ScanCallback() {
@Override
public void onScanResult(ExtendedBluetoothDevice bluetoothDevice) {
// 扫描结果
}
@Override
public void onBatchScanResults(List
// 扫描结果集合
}
@Override
public void onScanFailed(int errorCode, String msg) {
// 扫描失败回调
}
@Override
public void onStopScan() {
//停止扫描回调。
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorCode | int | 错误码 | 参照错误码 | 否 |
msg | String | 错误信息 | 否 | |
bluetoothDevice | ExtendedBluetoothDevice | 返回成功信息 | 返回需求数据 | 是 |
bluetoothDevice参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 设备名称 | 是 | |
rssi | int | 设备的rssi值 | 是 | |
device | BluetoothDevice | 设备 | 是 | |
mScanedResult | ScanedResult | 设备的广播信息 | 是 | |
beacon | MeshBeacon | mesh广播包 | 是 |
停止扫描
停止当前的扫描操作。
IotBleSDK.getBleMeshCloudManager().stopScan();
mesh网络相关
新建默认网络
创建默认网络,名字默认值为Mesh Network,globalTtl默认值为5。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().createDefaultMeshNetwork(
new ICallback
@Override
public void onSuccess(MeshNetwork meshNetwork) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | MeshNetwork | 返回成功信息 | 返回需求数据 | 是 |
meshNetwork参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
networkName | String | 网络名称 | 默认值:Mesh Network。 | 是 |
globalTtl | int | 消息中继的次数 | 取值范围:0~127。 默认值:5。 | 是 |
isConnected | boolean | 网络连接状态 | 是 |
新建指定网络
创建指定网络名称和ttl值的网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
name | String | 网络名称 | 是 | |
ttl | int | 消息中继的次数 | 值小于0则为默认值;值大于127则为127。 取值范围:0~127,默认值:5。 | 是 |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().createMeshNetwork(name,ttl,
new ICallback
@Override
public void onSuccess(MeshNetwork meshNetwork) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | MeshNetwork | 返回成功信息 | 返回需求数据 | 是 |
获取所有网络列表
获取已创建的网络列表。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().getMeshNetworkList(
new ICallback>() {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result | List |
返回 成功信息 | 返回需求数据 | 是 |
修改网络名称
网络信息只能修改名称和ttl值。操作前提:已加载网络且在已加载的网络下执行。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
name | String | 新的名称 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().updateMeshNetworkName(
meshNetwork.getNetworkId(), name, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改网络的ttl
网络信息只能修改名称和ttl值。操作前提:已加载网络且在已加载的网络下执行。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
ttl | int | 新的ttl值 | Time to live,节点控制消息中继的次数。 | 是 |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().updateMeshNetworkTtl (
meshNetwork.getNetworkId(), ttl, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
删除网络
删除网络信息,设备需要物理重置。如果删除当前已加载的网络,则需要重新加载新网络。注意:区别本地蓝牙mesh 删除网络的功能。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().deleteMeshNetwork (
meshNetwork.getNetworkId(),new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
加载网络
成功加载指定网络后,才能操作网络下的节点。同一时间只能加载一个网络,不能加载多个。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().loadingMeshNetwork (
meshNetwork.getNetworkId(), new ICallback> () {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
meshNodeProvisioned参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeId | String | 节点id | 是 | |
mac | String | 节点mac | 对应的设备mac | 是 |
nodeName | String | 节点名称 | 一般为设备名称 | 是 |
networkId | String | 网络id | 节点所在的网络 | 是 |
断开连接
断开网络的连接。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().disconnect ( new ISDKCallback() {
@Override
public void onSuccess(){
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
注册网络连接状态监听
连接状态监听,加载其他网络时会断开当前网络的连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
statusListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().registerBleConnectStatusListener (
new BleConnectStatusListener () {
@Override
public void onConnectStatusChanged(String networkId, int status){
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
status | int | 已连接: Constants.STATUS_CONNECTED 已断开: Constants.STATUS_DISCONNECTED | 是 |
注销网络连接状态监听
注销连接状态监听。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
statusListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().unregisterBleConnectStatusListener (statusListener);
节点相关
配置设备
对设备启动配置流程,使其加入当前mesh网络中成为节点。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
bluetoothDevice | ExtendedBluetoothDevice | 设备 | 扫描到的设备 | 是 |
produceId | int | 产品id | 是 | |
produceKey | String | 产品key | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().provisioningDevice(bluetoothDevice,
productId, productKey,new ICallback
@Override
public void onSuccess(MeshNodeProvisioned meshNodeProvisioned) {
// 配置成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 配置失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | MeshNodeProvisioned | 返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
result参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
nodeId | String | 节点id | 是 | |
mac | String | 节点mac | 对应的设备mac | 是 |
nodeName | String | 节点名称 | 一般为设备名称 | 是 |
networkId | String | 网络id | 节点所在的网络 | 是 |
连接已配置节点
连接已经加入当前mesh网络的节点。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
bluetoothDevice | ExtendedBluetoothDevice | 设备 | 扫描到的设备 | 是 |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().connectToProvisionedNode (bluetoothDevice,
new ICallback
@Override
public void onSuccess(MeshNodeProvisioned meshNodeProvisioned) {
// 连接成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 连接失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | MeshNodeProvisioned | 返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取当前网络已配置节点列表
获取当前网络下所有已配置的节点。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().getProvisionedNodes (
new ICallback>() {
@Override
public void onSuccess(List
// 当前网络下已配置节点列表
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
重置节点
从当前网络移除节点,并且节点恢复到未配置状态。操作前提:已加载网络并已连接。当重置失败出现“用户与设备无绑定关系”的错误信息,可以选择物理重置节点并调用清除节点接口。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().resetProvisionedNode(meshNodeProvisioned,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
清除节点
用来清除当前网络此节点信息。一般情况下不建议使用,只有当设备主动重置,成为无效节点才使用。操作前提:已加载网络。
设备没有物理重置的情况下调用此接口,会影响蓝牙mesh**功能,例如:配置新节点时存在相同单播地址的节点。请慎重操作。**
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().deleteProvisionedNode (meshNodeProvisioned,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
节点添加订阅
为节点添加订阅,当被订阅节点发布消息,订阅节点能接受到消息。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
mac | String | 被订阅节点的mac | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().subscribeProsionedNodeAdd (meshNodeProvisioned,
mac,new ISDKCallback() {
@Override
public void onSuccess() {
// 订阅成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 订阅失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
节点删除订阅
与被订阅节点解除订阅关系。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
mac | String | 被订阅节点的mac | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().subscribeProsionedNodeDel (meshNodeProvisioned,
mac,new ISDKCallback() {
@Override
public void onSuccess() {
// 解订阅成功
}
@Override
public void onError(ErrorMessage errorMessage) {
// 解订阅失败
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
获取节点订阅列表
获取节点下所有的订阅地址。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 节点 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().getSubscribedList (meshNodeProvisioned,
mac,new ICallback> () {
@Override
public void onSuccess(List
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
result | List |
返回成功信息 | 返回需求数据 | 是 |
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
修改节点名称
修改节点名称。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
newName | String | 新名称 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().updateProvisionedNodeName(meshNodeProvisioned, newName, new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
数据通信
手机透传(push)消息给节点
手机向设备发送消息。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
bytes | byte[] | 二进制数据 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().sendPushData(mMeshNodeProvisioned, bytes,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
手机发送下行数据给节点
手机端下发命令控制设备,可以同时发送多条数据。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
构造功能点数据
MessageData.Builder builder = new MessageData.Builder();
// 可以添加多条数据
builder.put(key, value);
下发数据:
IotBleSDK.getBleMeshCloudManager().sendCommandData (mMeshNodeProvisioned, builder,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
手机极速传输小数据给节点
每次只能给设备发送一条消息,提高数据传输效率。支持的数据类型:int、float、enum、bool。操作前提:已加载网络并已连接。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
构造功能点数据
MessageData.Builder builder = new MessageData.Builder();
// 只能添加一条数据
builder.put(key, value);
下发数据:
IotBleSDK.getBleMeshCloudManager().sendCommandData (mMeshNodeProvisioned, builder,
new ISDKCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
接收节点发送的透传数据
节点主动发送二进制数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().registerPushListener(new PushListener(){
@Override
public void onPush(String networkId,String mac,byte[] data){
// 接收的二进制数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
data | byte[] | 二进制数据 | 是 |
注销接收节点发送的透传数据监听方法:
IotBleSDK.getBleMeshCloudManager().unregisterPushListener(pushListener);
清除网络中透传数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的透传数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的透传数据监听方法。
*/
IotBleSDK.getBleMeshCloudManager().clearPushListener(String networkId);
接收节点发送的上行数据
节点主动发送上行数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().registerCommandListener (new CommandListener(){
@Override
public void onCommand(String networkId,String mac, List
// 接收的上行数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
dataList | List |
上行数据 | 是 |
注销接收节点发送的上行数据监听方法:
IotBleSDK.getBleMeshCloudManager().unregisterCommandListener(commandListener);
清除网络中上行数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的上行数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的上行数据监听方法。
*/
IotBleSDK.getBleMeshCloudManager().clearCommandListener(String networkId);
接收节点极速传输的小数据
节点主动发送上行数据。操作前提:已加载网络。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
meshNodeProvisioned | MeshNodeProvisioned | 网络id | 是 | |
builder | MessageData.Builder | 下行数 | 是 | |
callback | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleMeshCloudManager().registerHighSpeedDataListener (
new HighSpeedDataListener (){
@Override
public void onReceive (String networkId,String mac, MessageData dataList){
// 接收的数据
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
networkId | String | 网络id | 是 | |
mac | String | 节点mac | 是 | |
dataList | MessageData | 上行数据 | 是 |
注销接收节点发送的极速数据监听方法:
IotBleSDK.getBleMeshCloudManager().unregisterHighSpeedDataListener (dataListener);
清除网络中极速数据监听方法(注:此方法可以在未加载网络情况下使用):
/*
* 当networkId不为空,表示清除指定网络的极速数据监听方法;
* 当network为空(null 或 “”),表示清除所有网络的极速数据监听方法。
*/
IotBleSDK.getBleMeshCloudManager().clearHighSpeedDataListener (String networkId);