推荐答案
// www.javascriptcn.com code example
wx.startBluetoothDevicesDiscovery({
services: ['00001234-0000-1000-8000-00805F9B34FB'], // 可选,指定要搜索的服务UUID
allowDuplicatesKey: false, // 可选,是否允许重复上报同一设备
interval: 0, // 可选,上报设备的间隔,默认为0
success(res) {
console.log('开始搜索蓝牙设备', res);
},
fail(err) {
console.error('搜索蓝牙设备失败', err);
},
complete() {
console.log('搜索蓝牙设备完成');
}
});本题详细解读
1. wx.startBluetoothDevicesDiscovery 的作用
wx.startBluetoothDevicesDiscovery 是微信小程序提供的 API,用于开始搜索附近的蓝牙外围设备。调用该 API 后,小程序会持续扫描附近的蓝牙设备,并将发现的设备信息通过事件回调返回。
2. 参数说明
- services: 可选参数,类型为
Array<string>,指定要搜索的蓝牙设备主服务的 UUID 列表。如果指定了该参数,则只搜索包含指定服务的设备。 - allowDuplicatesKey: 可选参数,类型为
boolean,默认为false。如果设置为true,则允许重复上报同一设备,否则每个设备只会被上报一次。 - interval: 可选参数,类型为
number,默认为0。表示上报设备的间隔时间,单位为毫秒。如果设置为0,则表示不限制上报间隔。
3. 回调函数
- success: 搜索成功时的回调函数,返回一个包含搜索结果的
res对象。 - fail: 搜索失败时的回调函数,返回一个包含错误信息的
err对象。 - complete: 搜索完成时的回调函数,无论成功或失败都会调用。
4. 注意事项
- 在调用
wx.startBluetoothDevicesDiscovery之前,需要先调用wx.openBluetoothAdapter初始化蓝牙适配器。 - 搜索到的设备信息会通过
wx.onBluetoothDeviceFound事件回调返回。 - 搜索完成后,应调用
wx.stopBluetoothDevicesDiscovery停止搜索,以节省电量。
5. 示例代码
// www.javascriptcn.com code example
wx.openBluetoothAdapter({
success(res) {
wx.startBluetoothDevicesDiscovery({
success(res) {
console.log('开始搜索蓝牙设备', res);
},
fail(err) {
console.error('搜索蓝牙设备失败', err);
}
});
},
fail(err) {
console.error('初始化蓝牙适配器失败', err);
}
});通过以上代码,小程序可以成功开始搜索附近的蓝牙外围设备,并在搜索到设备时通过事件回调获取设备信息。