设置通知(notify或indicate)
notify和indicate都使用以下方法
bleManager.notify(bleDevice, serviceUuid, notifyUuid, new BleNotifyCallback() {
@Override
public void onCharacteristicChanged(byte[] data, BleDevice device) {
}
@Override
public void onNotifySuccess(String notifySuccessUuid, BleDevice device) {
}
@Override
public void onFail(int failCode, String info, BleDevice device) {
}
});
当需要取消notify或indicate时调用以下方法
bleManager.cancelNotify(bleDevice, notifyUuid);
写入特征数据
bleManager.write(bleDevice, serviceUuid, writeUuid, data, new BleWriteCallback() {
@Override
public void onWrite(byte[] data, BleDevice device) {
}
@Override
public void onFail(int failCode, String info, BleDevice device) {
}
});
如果一次性写入的数据长度大于MTU即最大传输单元(默认是20字节),则可以使用下列方法进行分批写入
bleManager.writeByBatch(bleDevice, serviceUuid, writeUuid, data, lengthPerPackage, new BleWriteByBatchCallback() {
@Override
public void writeByBatchSuccess(byte[] data, BleDevice device) {
}
@Override
public void onFail(int failCode, String info, BleDevice device) {
}
});
Destroy
当结束BLE通信时不要忘了调用destroy
bleManager.destroy();
其他api
//获取设备支持的服务信息,如果设备尚未连接上则返回值为null
bleManager.getDeviceServices(bleDevice);
//读取已连接的远程设备信号
bleManager.readRssi(bleDevice, bleRssiCallback);
//设置MTU
bleManager.setMtu(bleDevice, mtu, bleMtuCallback);
//读取特征数据
bleManager.read(bleDevice, serviceUuid, readUuid, bleReadCallback);
//获取当前连接的设备
bleManager.getConnectedDevices();
//判断是否已连接上某台设备
bleManager.isConnected(address); |