而如果手机系统在 6.0 以上则需要配置如下权限:
因为蓝牙在 6.0 以上手机使用了模糊定位功能,所以需要添加模糊定位权限。
引入 SDK
在工程 module 的 build.gradle 文件中的 dependencies 中添加如下依赖:
compile ‘com.vise.xiaoyaoyou:baseble:2.0.0’
构建完后就可以直接使用该库的功能了。
初始化
在使用该库前需要进行初始化,初始化代码如下所示:
//蓝牙相关配置修改
ViseBle.config()
.setScanTimeout(-1)//扫描超时时间,这里设置为永久扫描
.setConnectTimeout(10 * 1000)//连接超时时间
.setOperateTimeout(5 * 1000)//设置数据操作超时时间
.setConnectRetryCount(3)//设置连接失败重试次数
.setConnectRetryInterval(1000)//设置连接失败重试间隔时间
.setOperateRetryCount(3)//设置数据操作失败重试次数
.setOperateRetryInterval(1000)//设置数据操作失败重试间隔时间
.setMaxConnectCount(3);//设置最大连接设备数量
//蓝牙信息初始化,全局唯一,必须在应用初始化时调用
ViseBle.getInstance().init(this);
初始化可以是在 Application 中也可以是在 MainActivity 中,只需要是在使用蓝牙功能前就行。还有需要注意的是,蓝牙配置必须在蓝牙初始化前进行修改,如果默认配置满足要求也可以不修改配置。
设备扫描
库中针对设备扫描定义了几种常用过滤规则,如果不满足要求也可以自己定义过滤规则,下面针对库中提供的过滤规则使用方式一一介绍:
- 扫描所有设备
ViseBle.getInstance().startScan(new ScanCallback(new IScanCallback() {
@Override
public void onDeviceFound(BluetoothLeDeviceStore bluetoothLeDeviceStore) {
}
@Override
public void onScanFinish(BluetoothLeDeviceStore bluetoothLeDeviceStore) {
}
@Override
public void onScanTimeout() {
}
}));
- 扫描指定设备 MAC 的设备
//该方式是扫到指定设备就停止扫描
ViseBle.getInst