当前位置:   article > 正文

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

android fastble

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()); // 初始化设置

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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) {
        // 写入失败回调
    }
});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

4. 定制化通信策略

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

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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连接状态变化回调
    }
});

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。

如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。
img
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

欢迎大家一键三连支持,若需要文中资料,直接扫描文末CSDN官方认证微信卡片免费领取↓↓↓

PS:群里还设有ChatGPT机器人,可以解答大家在工作上或者是技术上的问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/956110
推荐阅读
相关标签
  

闽ICP备14008679号