FastBle:Android BLE通信库的介绍与高级用法

1,121 阅读3分钟

FastBle是一个开源的Android BLE库,旨在简化和加速Android平台上的蓝牙低功耗(BLE)开发。它提供了一组易于使用的API和丰富的功能,使开发者能够快速构建稳定和高效的BLE应用程序。

基本介绍和特点

  1. 简单易用:FastBle提供了简洁而直观的API,使BLE开发变得简单和易于理解。它隐藏了复杂的底层细节,使开发者可以专注于业务逻辑的实现。
  2. 高效稳定:FastBle在蓝牙通信的稳定性和效率方面进行了优化。它实现了可靠的连接管理和数据传输机制,提供了可靠的错误处理和重试机制,确保在BLE通信过程中的稳定性和可靠性。
  3. 支持广泛:FastBle支持广泛的BLE设备和功能。它可以与各种BLE设备进行通信,包括传感器、健身设备、智能家居设备等。它支持读取和写入特征值、订阅通知和指示、扫描设备等常用的BLE操作。
  4. 后台扫描和连接:FastBle支持在后台进行BLE设备的扫描和连接,即使应用程序处于后台状态,也能保持与BLE设备的通信。这使得开发者可以实现后台运行的BLE应用程序,例如后台数据采集、远程监控等。
  5. 可扩展性:FastBle具有良好的可扩展性,可以根据具体需求进行定制和扩展。它提供了许多可自定义的选项和回调接口,使开发者能够根据自己的需求进行定制化开发。
  6. 兼容性:FastBle兼容Android 4.3(API级别18)及更高版本,覆盖了广泛的Android设备。

高级使用方法

1.自定义连接参数

FastBle允许您自定义BLE连接参数,如连接超时时间、重连次数、重连间隔等。

BleManager.getInstance().setReConnectCount(3) // 设置重连次数
        .setReConnectInterval(5000) // 设置重连间隔,单位毫秒
        .setConnectOverTime(10000) // 设置连接超时时间,单位毫秒
        .setOperateTimeout(5000) // 设置操作超时时间,单位毫秒
        .init(Application.getInstance()); // 初始化设置

2. 自定义扫描规则

FastBle允许您自定义BLE设备的扫描规则,如扫描超时时间、扫描过滤条件等。

BleScanRuleConfig scanRuleConfig = new BleScanRuleConfig.Builder()
        .setScanTimeOut(10000) // 设置扫描超时时间,单位毫秒
        .setServiceUuids(serviceUuids) // 设置扫描过滤的服务UUID列表
        .setDeviceName(true, names) // 设置扫描过滤的设备名称列表
        .setDeviceMac(mac) // 设置扫描过滤的设备MAC地址
        .setAutoConnect(true) // 设置是否自动连接设备
        .build();
BleManager.getInstance().initScanRule(scanRuleConfig);

3. 批量操作设备

FastBle支持同时操作多个设备,例如批量连接、批量读写等。

List<BleDevice> devices = new ArrayList<>();
// 添加需要操作的设备到列表中

BleManager.getInstance().connect(devices, new BleMultiCallback() {
    @Override
    public void onConnectFinished(boolean allConnected, List<BleDevice> connectedDevices) {
        // 所有设备连接完成回调
    }

    @Override
    public void onConnectException(BleDevice bleDevice, BleException exception) {
        // 设备连接异常回调
    }

    @Override
    public void onCharacteristicChanged(BleDevice bleDevice, BluetoothGattCharacteristic characteristic) {
        // 特征值变化回调
    }
});

// 批量读写特征值示例
BleManager.getInstance().writeMultipleCharacteristics(devices, characteristicMap, new BleMultiCallback() {
    @Override
    public void onWriteSuccess(BleDevice bleDevice) {
        // 写入成功回调
    }

    @Override
    public void onWriteFailure(BleDevice bleDevice, BleException exception) {
        // 写入失败回调
    }
});

4. 定制化通信策略

FastBle提供了多种通信策略,如自动重连策略、断开重连策略等,可根据需要进行定制。

// 自动重连策略
BleManager.getInstance().setReConnectStrategy(new AutoReConnectStrategy(true));

// 断开重连策略
BleManager.getInstance().setReConnectStrategy(new DisconnectedReConnectStrategy(true));

5. 监听BLE状态变化

FastBle提供了BLE状态变化的监听器,您可以通过它来监听BLE打开、关闭、连接状态等的变化。

BleManager.getInstance().enableBluetooth(); // 打开蓝牙

BleManager.getInstance().disableBluetooth(); // 关闭蓝牙

BleManager.getInstance().registerBleStateListener(new BleStateListener() {
    @Override
    public void onBluetoothStatusChanged(boolean isOn) {
        // 蓝牙状态变化回调
    }

    @Override
    public void onBleConnectStatusChanged(BleDevice bleDevice) {
        // BLE连接状态变化回调
    }
});