请选择 进入手机版 | 继续访问电脑版
查看: 2076|回复: 0

[技术交流] 蓝牙欢乐爬坑行之二---3类安卓手机搜索BLE设备方式介绍

[复制链接]

2

主题

2

帖子

5

积分

助理工程师

Rank: 1

积分
5
发表于 2018-11-29 16:41:49 | 显示全部楼层 |阅读模式
本帖最后由 lill 于 2018-11-29 16:43 编辑

在安卓系统框架内部,有三类蓝牙搜索设备方式,下面讲讲三类的差异。
第1类:
调用startDiscovery(),该接口是蓝牙设置里面调用的扫描接口,既可以扫描传统蓝牙设备,也可以扫描低功耗蓝牙设备。
调用cancelDiscovery()则取消扫描。
第2类:
调用startLeScan(LeScanCallback callback)或者带过滤UUID功能的startLeScan(final UUID[] serviceUuids, final LeScanCallback callback)方式,该接口在android5.0以后就废弃了。谷歌为保持设备的兼容性,还是允许用户调用的,不过建议根据系统版本号来判断是否调用。
调用stopLeScan(LeScanCallback callback)则取消扫描。
第3类:
Android5.0以后,新增了一个BluetoothLeScanner类,调用startScan(final ScanCallback callback)或者startScan(List<ScanFilter> filters, ScanSettings settings, final ScanCallback callback),建议高版本安卓系统中采用这种方式,兼容性会好些。这里需要注意下扫描配置参数ScanSettings类,里面可以设置基于功耗和效率考虑的不同模式,比如SCAN_MODE_LOW_POWER、SCAN_MODE_BALANCED或者SCAN_MODE_LOW_LATENCY,也可以设置基于手机底层硬件考虑的搜索设备返回模式,比如MATCH_NUM_ONE_ADVERTISEMENT、MATCH_NUM_FEW_ADVERTISEMENT和MATCH_NUM_MAX_ADVERTISEMENT。
调用stopScan(ScanCallback callback)则取消扫描。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表