基础库版本 >= 3.73.0 支持。
开始搜寻附近的蓝牙外围设备。
此操作比较耗费系统资源,请在搜索到需要的设备后及时调用 bl.stopBluetoothDevicesDiscovery 停止搜索。
参数说明
Object object
| 属性 | 类型 | 默认值 | 必填 | 说明 | 版本 | 
| services | Array. <string> |  | 否 | 要搜索的蓝牙设备主服务的 UUID 列表(支持 16/32/128 位 UUID)。某些蓝牙设备会广播自己的主 service 的 UUID。如果设置此参数,则只搜索广播包有对应 UUID 的主服务的蓝牙设备。建议通过该参数过滤掉周边不需要处理的其他蓝牙设备。 | 3.73.0 | 
| allowDuplicatesKey | boolean | false | 否 | 是否允许重复上报同一设备。如果允许重复上报,则 bl.onBlueToothDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同。 | 3.73.0 | 
| interval | number | 0 | 否 | 上报设备的间隔,单位 ms。0 表示找到新设备立即上报,其他数值根据传入的间隔上报。 | 3.73.0 | 
| powerLevel | string | medium | 否 | 扫描模式,越高扫描越快,也越耗电。仅安卓支持。 | 3.73.0 | 
| success | function |  | 否 | 接口调用成功的回调函数 | 3.73.0 | 
| fail | function |  | 否 | 接口调用失败的回调函数 | 3.73.0 | 
| complete | function |  | 否 | 接⼝调⽤结束的回调函数(调⽤成功、失败都会执⾏) | 3.73.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 | 参数不正确 |