基础库版本 >= 3.81.0
支持。
开始搜寻附近的蓝牙外围设备。
此操作比较耗费系统资源,请在搜索到需要的设备后及时调用 bl.stopBluetoothDevicesDiscovery 停止搜索。
参数说明
Object object
属性 | 类型 | 默认值 | 必填 | 说明 | 版本 |
services | Array. <string> | | 否 | 要搜索的蓝牙设备主服务的 UUID 列表(支持 16/32/128 位 UUID)。某些蓝牙设备会广播自己的主 service 的 UUID。如果设置此参数,则只搜索广播包有对应 UUID 的主服务的蓝牙设备。建议通过该参数过滤掉周边不需要处理的其他蓝牙设备。 | 3.81.0 |
allowDuplicatesKey | boolean | false | 否 | 是否允许重复上报同一设备。如果允许重复上报,则 bl.onBlueToothDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同。 | 3.81.0 |
interval | number | 0 | 否 | 上报设备的间隔,单位 ms。0 表示找到新设备立即上报,其他数值根据传入的间隔上报。 | 3.81.0 |
powerLevel | string | medium | 否 | 扫描模式,越高扫描越快,也越耗电。仅安卓支持。 | 3.81.0 |
success | function | | 否 | 接口调用成功的回调函数 | 3.81.0 |
fail | function | | 否 | 接口调用失败的回调函数 | 3.81.0 |
complete | function | | 否 | 接⼝调⽤结束的回调函数(调⽤成功、失败都会执⾏) | 3.81.0 |
powerLevel 的合法值
示例代码
bl.startBluetoothDevicesDiscovery({
services: ['FEE7'],
success (res) {
console.log(res)
}
})
注意
- 考虑到蓝牙功能可以间接进行定位,安卓 6.0 及以上版本,无定位权限或定位开关未打开时,无法进行设备搜索。这种情况下,安卓 8.0.16 前,接口调用成功但无法扫描设备;8.0.16 及以上版本,会返回错误。
错误异常
错误码 | 错误信息 | 场景 |
0 | ok | 正常 |
-1 | already connect | 已连接 |
10000 | not init | 未初始化蓝牙适配器 |
10001 | not available | 当前蓝牙适配器不可用 |
10002 | no device | 没有找到指定设备 |
10003 | connection fail | 连接失败 |
10004 | no service | 没有找到指定服务 |
10005 | no characteristic | 没有找到指定特征 |
10006 | no connection | 当前连接已断开 |
10007 | property not support | 当前特征不支持此操作 |
10008 | system error | 其余所有系统上报的异常 |
10009 | system not support | Android 系统特有,系统版本低于 4.3 不支持 BLE |
10012 | operate time out | 连接超时 |
10013 | invalid_data | 连接 deviceId 为空或者是格式不正确 |
10014 | invalid param | 参数不正确 |