uniapp微信小程序蓝牙连接与设备数据对接

本文详细介绍了在uniapp微信小程序中实现蓝牙连接,包括初始化蓝牙、搜索设备、获取服务、监听数据变化以及数据传输的方法,供开发者参考。

uniapp微信小程序蓝牙连接与设备数据对接

蓝牙连接并通信方法封装大致步骤。
  1. 初始化蓝牙并搜索;
  2. 获取并启用service服务;
  3. 数据读取和监听设备返回数据

需要使用uniapp官方提供api:

// 关闭蓝牙
uni.closeBluetoothAdapter({})
// 打开蓝牙
uni.openBluetoothAdapter({})
// 搜索附近的蓝牙
uni.startBluetoothDevicesDiscovery({})
// 停止搜索
uni.stopBluetoothDevicesDiscovery({})
// 连接低功耗BLE蓝牙
uni.createBLEConnection({})
// 获取蓝牙设备所有服务(service)
uni.getBLEDeviceServices({})
// 获取蓝牙特征值
uni.getBLEDeviceCharacteristics({})
// 启用低功耗蓝牙设备特征值变化时的 notify 功能,订阅特征值
uni.notifyBLECharacteristicValueChange({})
// 监听低功耗蓝牙设备的特征值变化事件
uni.onBLECharacteristicValueChange({})
// 读取低功耗蓝牙设备的特征值的二进制数据值
uni.readBLECharacteristicValue({})

1、开启蓝牙适配器初始化蓝牙模块,获取手机蓝牙是否打开

const getBluetoothState = () => {
	return new Promise((resolve, reject) => {
		uni.openBluetoothAdapter({
			mode: 'central', // 主机模式
			success: (r) => {
				console.log("蓝牙初始化成功");
				// 获取蓝牙的匹配状态
				uni.getBluetoothAdapterState({
					success: function(row) {
						console.log('蓝牙状态:', row.available);
						if (row.available) {
							// 蓝牙连接成功,开启蓝牙设备搜索
							resolve();
						} else {
							// 请开启蓝牙
							uni.showToast({
								title: "请开启蓝牙",
								icon: 'none',
								duration: 2000
							});
							reject();
						}
					},
					fail: function(err) {
						// 请开启蓝牙
						uni.showToast({
							title: "请开启蓝牙",
							icon: 'none',
							duration: 2000
						});
						reject();
					}
				})
			},
			fail: () => {
				// 请开启蓝牙
				uni.showToast({
					title: "请开启蓝牙",
					icon: 'none',
					duration: 2000
				});
				reject();
			}
		});
	});
}

2、开启蓝牙设备搜索:

const discoveryBluetooth = () => {
	return new Promise((resolve) => {
		uni.startBluetoothDevicesDiscovery({
			success(res) {
				uni.showLoading({
	                title: "正在搜索设备",
	                icon:"none",
	                duration: 2000
	            });
				console.log('搜索蓝牙外围设备完成', res)
				setTimeout(() => {
					// 监听寻找到的蓝牙设备
					resolve();
				}, 2000);
			}
		})
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值