English version

AndroidBleManager

强大的蓝牙工具库

License Download

使用

将下面的代码增加到build.gradle文件中,${latest.version} is Download

dependencies {
    compile 'com.blakequ.androidblemanager:bluetooth-manager-lib:${latest.version}'
}

maven

<dependency>
  <groupId>com.blakequ.androidblemanager</groupId>
  <artifactId>bluetooth-manager-lib</artifactId>
  <version>${latest.version}</version>
  <type>pom</type>
</dependency>

1. 功能特性

1.1 扫描

1.2 单个设备连接

1.3 多个设备连接

2. 图片预览

3. 使用说明

3.1 扫描

3.2 单设备连接

为了简化蓝牙连接,已经自动封装了蓝牙Gatt的读写和通知。

3.3 多设备连接

3.4 个性化扫描和连接配置

  1. 可设置参数如下:
    boolean isDebugMode = false; //是否为debug模式,建议使用BuildConfig.DEBUG设置,如果为true则打印日志
    long foregroundScanPeriod = 10000; //在前台时(可见扫描界面)扫描持续时间
    long foregroundBetweenScanPeriod = 5000; //在前台时(可见扫描界面)扫描间隔暂停时间,我们扫描的方式是间隔扫描
    long backgroundScanPeriod = 10000; //在后台时(不可见扫描界面)扫描持续时间
    long backgroundBetweenScanPeriod = 5 * 60 * 1000; //在后台时(不可见扫描界面)扫描间隔暂停时间,我们扫描的方式是间隔扫描
    int maxConnectDeviceNum = 5;//一次最多连接设备个数
    int reconnectStrategy = 3; //如果连接自动断开之后的重连策略(ConnectConfig.RECONNECT_LINEAR,ConnectConfig.RECONNECT_EXPONENT,ConnectConfig.RECONNECT_LINE_EXPONENT,ConnectConfig.RECONNECT_FIXED_TIME)
    int reconnectMaxTimes = Integer.MAX_VALUE; //最大重连次数,默认可一直进行重连
    long reconnectBaseSpaceTime = 8000; //重连基础时间间隔ms,重连的时间间隔
    int reconnectedLineToExponentTimes = 5; //快速重连的次数(线性到指数,只在reconnectStrategy=ConnectConfig.RECONNECT_LINE_EXPONENT时有效)
    int connectTimeOutTimes = 15000; //连接超时时间15s,15s后自动检测蓝牙状态(如果设备不在连接范围或蓝牙关闭,则重新连接的时间会很长,或者一直处于连接的状态,现在超时后会自动检测当前状态)
  2. 使用方法
    BleManager.setBleParamsOptions(new BleParamsOptions.Builder()
                .setBackgroundBetweenScanPeriod(5 * 60 * 1000)
                .setBackgroundScanPeriod(10000)
                .setForegroundBetweenScanPeriod(5000)
                .setForegroundScanPeriod(10000)
                .setDebugMode(BuildConfig.DEBUG)
                .setMaxConnectDeviceNum(5)
                .setReconnectBaseSpaceTime(8000)
                .setReconnectMaxTimes(Integer.MAX_VALUE)
                .setReconnectStrategy(ConnectConfig.RECONNECT_LINE_EXPONENT)
                .setReconnectedLineToExponentTimes(5)
                .setConnectTimeOutTimes(20000)
                .build());

4. 权限

使用时需要如下权限

if SDK >= 23, 增加权限

5.更新日志

6. TODO

7. 链接参考

其中ibeacon封装和扫描部分代码参考如下开源库,在此感谢作者的无私奉献。

8. 个人博客

9. Apk