本地蓝牙
本地蓝牙SDK
初始化SDK
SDK初始化
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
context | Context | App环境上下文 | 可以在Application中传入 | 是 |
例子:
在Application onCreate方法中调用一下初始化方法
IotBleSDK.init(Context context);
IotBleSDK.getInstance().initUserInfo(int userId, String userToken);
混淆配置文件
-downwarn com.iot.ble.**
-keep class com.iot.ble.**{*;}
#Gson
-downwarn com.google.gson.**
-keep class com.google.gson.**{*;}
蓝牙相关
是否支持低功耗蓝牙
IotBleSDK.getBleManager().isBleSupported();
打开关闭蓝牙
IotBleSDK.getBleManager().openBluetooth();
IotBleSDK.getBleManager().closeBluetooth();
蓝牙是否打开
IotBleSDK.getBleManager().isBluetoothOpened();
蓝牙状态
监听蓝牙状态变化。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BluetoothStateListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleManager().setBluetoothStatusListener(new BluetoothStateListener(){
@Override
public void onBluetoothStateChanged(boolean openOrClosed) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
);
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
openOrClosed | boolean | 蓝牙是否打开 | true:打开false:关闭 | 是 |
取消监听:
IotBleSDK.getBleManager().unRegisterBluetoothStatusListener(mBluetoothStateListener);
扫描设备
扫描所有低功耗蓝牙设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BleSearchCallback | function | 回调函数 | 是 |
例子:
使用默认扫描配置
IotBleSDK.getBleManager().searchBle(new BleSearchCallback(){
@Override
public void onSearchStarted(){
}
@Override
public void onDeviceFounded(BleDeviceBean bleDeviceBean){
}
@Override
public void onSearchStopped() {
}
@Override
public void onSearchCanceled() {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
erroeMessage | ErroeMessage | 错误码 | 参照错误码 | 是 |
result | BleDeviceImpl | 返回成功信息 | 需求数据 | 是 |
result参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mMac | String | 设备的Mac | 是 | |
mName | String | 设备的名称 | 是 | |
mRssi | int | 信号强度 | 是 | |
mScanRecord | byte[] | 广播数据 | 是 | |
mReconnect | boolean | 是否重连 | 蓝牙异常关闭开启后是 否自动重连。 默认值:false |
是 |
mBleDeviceStatus | BleDevceStatus | 设备状态 | 是 |
mBleDeviceStatus参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
status | int | 蓝牙设备状态 | Constants. STATUS_UNKNOWN Constants. BLE_STATUS_CONNECTED Constants. BLE_STATUS_CONNECTING Constants. BLE_STATUS_DISC ONNECTING Constants. BLE_STATUS_DISCONNECTED |
是 |
配置扫描参数,如下
IotBleSDK.getBleManager().initSearchConfig(BleSearchConfig searchConfig);
searchConfig参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
mTimeOut | int | 超时时长(单位:ms) | 默认值:5000ms | 否 |
mTimes | int | 超时次数 | 默认值:2 | 否 |
mServiceUuids | UUID[] | 指定过滤服务UUID | 否 |
停止扫描
IotBleSDK.getBleManager().stopSearch();
设备配对
监听设备配对状态变化。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BluetoothBondListener | Function | 回调函数 | 是 |
例子:
IotBleSDK.getBleManager().setBluetoothBondListener(new BluetoothBondListener(){
@Override
public void onBondStateChanged(String mac, int bondState) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
mac | String | 设备的mac | mac地址必须大写 | 是 |
bondState | int | 设备的绑定状态 | Constants.BOND_NONE Constants.BOND_BONDING Constants.BOND_BONDED |
是 |
取消监听:
IotBleSDK.getBleManager().unRegisterBluetoothBondListener(mBluetoothBondListener);
获取已连接设备列表
List<BleDevice> list = IotBleSDK.getBleManager().getAllConnectedDevice();
设备通信
一般使用IotBleDevice类,通过以下方法获得对象:
IotBleDeviceImpliotBleDevice=IotBleDeviceFactory.getIotBleDevice(
BleDevicebleDevice,intproductId,intuserId,intproductKey);
//通过BleDevice初始化
可以使用iotBleDevice.releaseBleDevice()与BleDevice取消关联;使用iotBleDevice.onDestroy()释放资源。
连接
连接蓝牙设备。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BleConnectCallback | Function | 回调函数 | 是 |
例子:
使用默认连接配置
iotBleDevice.connect(new BleConnectCallback() {
@Override
public void onResponse(int code, BleGattImpl data) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
code | int | 请求返回码 | 参照返回码 | 是 |
data | BleGattImpl | 服务 | 包含服务、特征值等信息 | 否 |
配置连接参数,如下:
IotBleSDK.getBleManager().initBleConnectConfig(BleConnectConfig connectConfig);
connectConfig参数
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
connectTimeout | int | 超时时长(单位:ms) | 默认值:15*1000ms | 否 |
opeartTimeout | int | 操作超时时长(单位:ms) | 默认值:15*1000ms | 否 |
autoConnect | boolean | 蓝牙底层连接是否自动连接 | 默认值:true | 否 |
连接状态
监听蓝牙设备连接状态。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BleConnectStatusListener | Function | 回调函数 | 是 |
例子:
iotBleDevice.setBleConnectStatusListener(new BleConnectStatusListener() {
@Override
public void onConnectStatusChanged(String mac, int status) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
error Message |
Error Message |
错误码 | 参照错误码 | 是 |
mac | String | 设备的mac | mac地址必须大写 | 是 |
status | int | 设备的状态 | Constants. STATUS_UNKNOWN Constants. BLE_STATUS_CONNECTED Constants. BLE_STATUS_CONNECTING Constants. BLE_STATUS_DISCONNECTING Constants. BLE_STATUS_DISCONNECTED Constants.BLE_STATUS_CONNECT_FAIL Constants.BLE_STATUS_RECONNECT_SUCCESS Constants.BLE_STATUS_RECONNECT_FAIL Constants. BLE_STATUS_REGI_SUCCESS Constants.BLE_STATUS_REGI_FAIL Constants. BLE_STATUS_SESSIONKEY_VALID Constants.BLE_STATUS_SESSIONKEY_FAIL |
是 |
断开连接
断开指定的蓝牙设备连接,不释放资源。
iotBleDevice.disconnect();
断开所有的蓝牙设备连接,不是释放资源。
IotBleSDK.getBleManager().disconnect();
设备状态
获取蓝牙设备状态。
例子:
int status = iotBleDevice.getIotBleStatus();
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
status | int | 设备的状态 | Constants. STATUS_UNKNOWN Constants. BLE_STATUS_CONNECTED Constants. BLE_STATUS_CONNECTING Constants. BLE_STATUS_DISCONNECTING Constants. BLE_STATUS_DISCONNECTED Constants.BLE_STATUS_CONNECT_FAIL Constants.BLE_STATUS_RECONNECT_SUCCESS Constants.BLE_STATUS_RECONNECT_FAIL Constants. BLE_STATUS_REGI_SUCCESS Constants.BLE_STATUS_REGI_FAIL Constants. BLE_STATUS_SESSIONKEY_VALID Constants.BLE_STATUS_SESSIONKEY_FAIL |
是 |
自动重连
蓝牙设备异常关闭是否自动重连,出现异常会尝试一直连接。
iotBleDevice.setReconnected(boolean reConnected);
// 是否满足重连条件
boolean reconnect = iotBleDevice. isReconnectionCondition();
信号强度
获取蓝牙设备的信号强度。
请求参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
BleReadRssiCallback | Function | 函数 | 是 |
例子:
iotBleDevice.readRssi(new BleReadRssiCallback() {
@Override
public void onResponse(int code, Integer data) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});
返回参数:
参数名 | 类型 | 说明 | 备注 | 必需 |
---|---|---|---|---|
errorMessage | ErrorMessage | 错误码 | 参照错误码 | 是 |
code | int | 请求返回码 | 是 | |
data | int | 信号强度值 | 是 |
消息接收
手机端接收蓝牙设备发送的消息。
透传二进制数据:
iotBleDevice.setPushListener(new IIotBleDeviceImpl.PushListener() {
@Override
public void onPush(byte[] values) {
}
});
设备功能点更新消息:
iotBleDevice.setCommandListener(new IIotBleDeviceImpl.CommandListener() {
@Override
public void onCommand(List<MessageData> list) {
}
});
设备解绑信息:
iotBleDevice.setUnbindListener(new IIotBleDeviceImpl.UnbindDeviceListener() {
@Override
public void onUnbind() {
}
});
设备错误信息:
iotBleDevice.setErrorListener(new IIotBleDevice.ErrorListener() {
Override
public void onError(IotBleMessage iotBleMessage) {
// 设备的错误信息
iotBleMessage.getErrorMessage();
}
});
透传(push)信息到设备
手机端向蓝牙设备发送信息。
iotBleDevice.push(byte[]array);
下发常规命令
手机端下发命令控制设备。
构造设备功能点数据
MessageData.Builder builder = new MessageData.Builder();
builder.put(key,value);
iotBleDevice.sendCommand(builder, new ICallback() {
@Override
public void onSuccess(Object result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
})
发送解绑信息
手机端发送解绑蓝牙设备信息,收到回复立即断开连接。
iotBleDevice.unbindBleDevice(new ICallback() {
@Override
public void onSuccess(Object result) {
}
@Override
public void onError(ErrorMessage errorMessage) {
}
});