微信小程序如何获取本机蓝牙mac地址

2025-03-22 22:36:43
推荐回答(1个)
回答1:

流程是这样的:先初始化蓝牙适配器,然后获取本机蓝牙适配器的状态,然后开始搜索,当停止搜索以后在开始搜索,就会触发蓝牙是配置状态变化的事件,搜索完成以后获取所有已经发现的蓝牙设备,就可以将devices中的设备Array取出来了。然后就可以得到所有已经连接的设备了,至于链接功能,还没有真机可测,所以没有测试。

我的电脑上蓝牙连接的设备:

以下是案例代码:

  • // pages/bluetooth/bluetooth.js

  • Page({

  • data:{},

  • onLoad:function(options){

  • // 页面初始化 options为页面跳转所带来的参数

  • },

  • //初始化蓝牙适配器

  • openBluetooth:function(){

  • wx.openBluetoothAdapter({

  • success: function(res){

  • console.log(res.errMsg)

  • // success

  • wx.showToast({

  • title:"初始化蓝牙适配器成功",

  • duration:2000

  • })

  • },

  • })

  • },

  • //关闭蓝牙模块

  • closeBluetooth:function(){

  • wx.openBluetoothAdapter()

  • wx.closeBluetoothAdapter({

  • success: function(res){

  • // success

  • console.log("success"+res)

  • }

  • })

  • },

  • //获取本机蓝牙适配器状态

  • getBluetoothAdapterState:function(){

  • wx.getBluetoothAdapterState({

  • success: function(res){

  • // success

  • console.log("res:"+res)

  • console.log("errMsg:"+res.errMsg)

  • }

  • })

  • },

  • //监听蓝牙适配器状态变化事件

  • onBluetoothAdapterStateChange:function(){

  • wx.onBluetoothAdapterStateChange(function(res) {

  • console.log(`adapterState changed, now is`, res)

  • })

  • },

  • // 开始搜寻附近的蓝牙外围设备

  • startBluetoothDevicesDiscovery:function(){

  • wx.startBluetoothDevicesDiscovery({

  • success: function (res) {

  • console.log(res)

  • }

  • })

  • },

  • // 停止搜寻附近的蓝牙外围设备

  • stopBluetoothDevicesDiscovery:function(){

  • wx.stopBluetoothDevicesDiscovery({

  • success: function (res) {

  • console.log(res)

  • }

  • })

  • },

  • //获取所有已发现的蓝牙设备

  • getBluetoothDevices:function(){

  • wx.getBluetoothDevices({

  • success: function(res){

  • // success

  • console.log(res)

  • },

  • })

  • },

  • //监听寻找到新设备的事件

  • onBluetoothDeviceFound:function(){

  • wx.onBluetoothDeviceFound(function(res) {

  • // callback

  • console.log(res)

  • })

  • },

  • //根据 uuid 获取处于已连接状态的设备

  • getConnectedBluetoothDevices:function(){

  • wx.getConnectedBluetoothDevices({

  • success: function (res) {

  • console.log(res)

  • }

  • })

  • },

  • //连接低功耗蓝牙设备

  • createBLEConnection:function(){

  • wx.createBLEConnection({

  • deviceId: 'AC:BC:32:C1:47:80',

  • success: function(res){

  • // success

  • console.log(res)

  • },

  • fail: function(res) {

  • // fail

  • },

  • complete: function(res) {

  • // complete

  • }

  • })

  • },

  • //断开与低功耗蓝牙设备的连接

  • closeBLEConnection:function(){

  • wx.closeBLEConnection({

  • deviceId: 'AC:BC:32:C1:47:80',

  • success: function (res) {

  • console.log(res)

  • }

  • })

  • },

  • //监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等

  • onBLEConnectionStateChanged:function(){

  • wx.onBLEConnectionStateChanged(function(res) {

  • console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)

  • })

  • },

  • //获取蓝牙设备所有 service(服务)

  • getBLEDeviceServices:function(){

  • wx.getBLEDeviceServices({

  • deviceId: '48:3B:38:88:E3:83',

  • success: function(res){

  • // success

  • console.log('device services:', res.services.serviceId)

  • },

  • fail: function(res) {

  • // fail

  • },

  • complete: function(res) {

  • // complete

  • }

  • })

  • },

  • //获取蓝牙设备所有 characteristic(特征值)

  • getBLEDeviceCharacteristics:function(){

  • wx.getBLEDeviceCharacteristics({

  • deviceId: '48:3B:38:88:E3:83',

  • serviceId: 'serviceId',

  • success: function(res){

  • // success

  • },

  • fail: function(res) {

  • // fail

  • },

  • complete: function(res) {

  • // complete

  • }

  • })

  • }

  • })