小程序 手机模拟设备ble发送蓝牙广播

小程序实现蓝牙广播功能,配置广播信息,蓝牙设备接收广播信息做出响应
先看代码

//在页面加载时候初始化蓝牙适配器
            uni.openBluetoothAdapter({
                success: e => {
                    console.log('初始化蓝牙成功:' + e.errMsg);
                    this.openBle();
                },
                fail: e => {
                    console.log('初始化蓝牙失败,错误码:' + (e.errCode || e.errMsg));
                }
            });

启动低功耗蓝牙广播

// 低功耗蓝牙广播测试
            openBle() {
                wx.openBluetoothAdapter({
                    success: (res) => {
                        console.info('Bluetooth adapter opened');
                        console.log('Creating BLEPeripheralServer');
                        wx.createBLEPeripheralServer({
                            success: (res) => {
                                console.info('createBLEPeripheralServer successed', res);
                                let server = res.server;
                                console.log(server);
                                let uuid1 = '0000af8e-0000-1000-8000-00805f9b34fb';
                                let uuid2 = '0000ae8f-0000-1000-8000-00805f9b34fb';
                                let buff = [0x0a, 0x0b, 0x0c, 0x0d];

                                server.startAdvertising({
                                    advertiseRequest: {
                                        connectable: true,
                                        serviceUuids: [
                                            uuid1,
                                            uuid2
                                        ],
                                        manufacturerData: [{
                                            manufacturerId: 0x01AC,
                                            manufacturerSpecificData: buff
                                        }]
                                    }
                                }).then(
                                    (res) => {
                                        console.log('Adverstising.. ', res);
                                    },
                                    (res) => {
                                        console.warn('Advertising failed', res);
                                    });
                            },
                            fail: (res) => {
                                console.warn('createBLEPeripheralServer failed');
                            },
                            complete: (res) => {
                                console.debug('createBLEPeripheralServer completed');
                            }
                        });
                    },
                    fail: (res) => {
                        console.log('openBluetoothAdapter failed');
                        console.warn(res);
                    },
                    complete: (res) => {
                        console.debug('openBluetoothAdapter completed');
                    },
                });
            },

我们可以再写一个蓝牙接收广播的工具,扫描广播信息并打印出来
scandata:02011A07FFAC01F2411CAD05038EAF8FAE
解释一下这个数据的意思
分三个部分:02011A,07FFAC010A0B0C0D, 05038EAF8FAE
1、02011A这3个字节,02表示后面一段数据长度为2字节,01表示数据类型是flag ,1A就是flag的数据了
2、07FFAC010A0B0C0D, 07表示后面数据长度是7个字节,FF表示数据类型是制造商, 其中AC01制造商id,注意这个是倒过来的,配置的是01AC、0A0B0C0D为制造商数据
3、05038EAF8FAE 其中05数据长度、03数据类型时uuid、8EAF8FAE是uuid的数据,注意这里的数据也是倒过来的,由两个uuid拼接而成

你可能感兴趣的:(小程序 手机模拟设备ble发送蓝牙广播)