本地蓝牙

本地蓝牙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) {
    }
});
Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""