中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

openBluetoothAdapter初始化藍牙適配器的方法

發布時間:2022-03-08 09:43:27 來源:億速云 閱讀:379 作者:iii 欄目:開發技術

這篇文章主要介紹“openBluetoothAdapter初始化藍牙適配器的方法”,在日常操作中,相信很多人在openBluetoothAdapter初始化藍牙適配器的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”openBluetoothAdapter初始化藍牙適配器的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

藍牙適配器接口


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

iOS 微信客戶端 6.5.6 版本開始支持,Android 客戶端暫不支持

wx.openBluetoothAdapter(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

初始化藍牙適配器

OBJECT參數說明:

參數 類型 必填 說明
success Function 成功則返回成功初始化信息
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

示例代碼:

wx.openBluetoothAdapter({
  success: function (res) {console.log(res)
  }
})

Bug & Tip

  1. tip: 由于系統的問題,目前僅在 mac 版的開發工具上支持藍牙調試

  2. tip: 基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

wx.closeBluetoothAdapter(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

關閉藍牙模塊。調用該方法將斷開所有已建立的鏈接并釋放系統資源

OBJECT參數說明:

參數 類型 必填 說明
success Function 成功則返回成功關閉模塊信息
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

示例代碼:

wx.closeBluetoothAdapter({
  success: function (res) {console.log(res)
  }
})

wx.getBluetoothAdapterState(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

獲取本機藍牙適配器狀態

OBJECT參數說明:

參數 類型 必填 說明
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
discovering Boolean 是否正在搜索設備
available Boolean 藍牙適配器是否可用
errMsg String 成功:ok,錯誤:詳細信息
示例代碼:
wx.getBluetoothAdapterState({
  success: function (res) {console.log(res)
  }
})

wx.onBluetoothAdapterStateChange(CALLBACK)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

監聽藍牙適配器狀態變化事件

CALLBACK參數說明:

參數 類型 說明
available boolean 藍牙適配器是否可用
discovering boolean 藍牙適配器是否處于搜索狀態

示例代碼:

wx.onBluetoothAdapterStateChange(function(res) {  console.log(`adapterState changed, now is`, res)
})

wx.startBluetoothDevicesDiscovery(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

開始搜尋附近的藍牙外圍設備。注意,該操作比較耗費系統資源,請在搜索并連接到設備后調用 stop 方法停止搜索。

OBJECT參數說明:

參數 類型 必填 說明
services Array 藍牙設備主 service 的 uuid 列表
allowDuplicatesKey boolean 是否允許重復上報同一設備, 如果允許重復上報,則onDeviceFound 方法會多次上報同一設備,但是 RSSI 值會有不同
interval integer 上報設備的間隔,默認為0,意思是找到新設備立即上報,否則根據傳入的間隔上報
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

services參數說明:某些藍牙設備會廣播自己的主 service 的 uuid。如果這里傳入該數組,那么根據該 uuid 列表,只搜索有這個主服務的設備。

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息
isDiscovering boolean 當前藍牙適配器是否處于搜索狀態

示例代碼:

// 以微信硬件平臺的藍牙智能燈為例,主服務的 UUID 是 FEE7。傳入這個參數,只搜索主服務 UUID 為 FEE7 的設備wx.startBluetoothDevicesDiscovery({
  services: ['FEE7'],
  success: function (res) {console.log(res)
  }
})

wx.stopBluetoothDevicesDiscovery(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

停止搜尋附近的藍牙外圍設備。請在確保找到需要連接的設備后調用該方法停止搜索。

OBJECT參數說明:

參數 類型 必填 說明
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息

adapterState

藍牙適配器狀態信息

參數 類型 說明
discovering boolean 是否正在搜索設備
available boolean 藍牙適配器是否可用

示例代碼:

wx.stopBluetoothDevicesDiscovery({
  success: function (res) {console.log(res)
  }
})

wx.getBluetoothDevices(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

獲取所有已發現的藍牙設備,包括已經和本機處于連接狀態的設備

OBJECT參數說明:

參數 類型 必填 說明
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
devices Array uuid 對應的的已連接設備列表
errMsg string 成功:ok,錯誤:詳細信息

device 對象

藍牙設備信息

參數 類型 說明
name string 藍牙設備名稱,某些設備可能沒有
deviceId string 用于區分設備的 id
RSSI int 當前藍牙設備的信號強度
advertisData ArrayBuffer 當前藍牙設備的廣播內容(注意:vConsole 無法打印出 ArrayBuffer 類型數據)

示例代碼:

wx.getBluetoothDevices({
  success: function (res) {console.log(res)
  }
})

Bug & Tip

  1. tip: Mac系統可能無法獲取advertisDataRSSI,請使用真機調試

  2. tip: 開發者工具和 Android 上獲取到的deviceId為設備 MAC 地址,iOS 上則為設備 uuid。因此deviceId不能硬編碼到代碼中

wx.getConnectedBluetoothDevices(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

根據 uuid 獲取處于已連接狀態的設備

OBJECT參數說明:

參數 類型 必填 說明
services Array 藍牙設備主 service 的 uuid 列表
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
devices Array 搜索到的設備列表
errMsg string 成功:ok,錯誤:詳細信息

device對象

藍牙設備信息

參數 類型 說明
name string 藍牙設備名稱,某些設備可能沒有
deviceId string 用于區分設備的 id

示例代碼:

wx.getConnectedBluetoothDevices({
  success: function (res) {console.log(res)
  }
})

Bug & Tip

  1. tip: 開發者工具和 Android 上獲取到的deviceId為設備 MAC 地址,iOS 上則為設備 uuid。因此deviceId不能硬編碼到代碼中

wx.onBluetoothDeviceFound(CALLBACK)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

監聽尋找到新設備的事件

CALLBACK參數說明:

參數 類型 說明
devices Array 新搜索到的設備列表

device對象

參數 類型 說明
deviceId string 藍牙設備 id,參考 device 對象
name string 藍牙設備名稱,參考 device 對象
RSSI int 當前藍牙設備的信號強度
advertisData ArrayBuffer 當前藍牙設備的廣播內容(注意:vConsole 無法打印出 ArrayBuffer 類型數據)

示例代碼:

wx.onBluetoothDeviceFound(function(devices) {  console.log('new device list has founded')  console.dir(devices)
})

Bug & Tip

  1. tip: Mac系統可能無法獲取advertisDataRSSI,請使用真機調試

  2. tip: 開發者工具和 Android 上獲取到的deviceId為設備 MAC 地址,iOS 上則為設備 uuid。因此deviceId不能硬編碼到代碼中

低功耗藍牙接口

wx.createBLEConnection(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

連接低功耗藍牙設備

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 getDevices 接口
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息

示例代碼:

wx.createBLEConnection({  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,
  success: function (res) {console.log(res)
  }
})

wx.closeBLEConnection(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

斷開與低功耗藍牙設備的連接

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 getDevices 接口
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息

示例代碼:

wx.closeBLEConnection({
  success: function (res) {console.log(res)
  }
})

wx.getBLEDeviceServices(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

獲取藍牙設備所有 service(服務)

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 getDevices 接口
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
services array 設備服務列表
errMsg string 成功:ok,錯誤:詳細信息

service對象

藍牙設備service(服務)信息

參數 類型 說明
uuid string 藍牙設備服務的 uuid
isPrimary boolean 該服務是否為主服務

示例代碼:

wx.getBLEDeviceServices({  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,
  success: function (res) {console.log('device services:', res.services)
  }
})

wx.getBLEDeviceCharacteristics(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

獲取藍牙設備所有 characteristic(特征值)

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 藍牙服務 uuid
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
characteristics array 設備特征值列表
errMsg string 成功:ok,錯誤:詳細信息

characteristic對象

藍牙設備characteristic(特征值)信息

參數 類型 說明
uuid string 藍牙設備特征值的 uuid
properties object 該特征值支持的操作類型

properties對象

參數 類型 說明
read boolean 該特征值是否支持 read 操作
write boolean 該特征值是否支持 write 操作
notify boolean 該特征值是否支持 notify 操作
indicate boolean 該特征值是否支持 indicate 操作

示例代碼:

wx.getBLEDeviceCharacteristics({  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,  // 這里的 serviceId 需要在上面的 getBLEDeviceServices 接口中獲取
  serviceId: serviceId,
  success: function (res) {console.log('device getBLEDeviceCharacteristics:', res.characteristics)
  }
})

wx.readBLECharacteristicValue(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

讀取低功耗藍牙設備的特征值的二進制數據值。注意:必須設備的特征值支持read才可以成功調用,具體參照 characteristic 的 properties 屬性

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 藍牙特征值對應服務的 uuid
characteristicId string 藍牙特征值的 uuid
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
characteristic object 設備特征值信息
errMsg string 成功:ok,錯誤:詳細信息

characteristic對象

藍牙設備characteristic(特征值)信息

參數 類型 說明
characteristicId string 藍牙設備特征值的 uuid
serviceId object 藍牙設備特征值對應服務的 uuid
value ArrayBuffer 藍牙設備特征值對應的二進制值(注意:vConsole 無法打印出 ArrayBuffer 類型數據)

示例代碼:

// 必須在這里的回調才能獲取wx.onBLECharacteristicValueChange(function(characteristic) {  console.log('characteristic value comed:', characteristic)
})

wx.readBLECharacteristicValue({  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,  // 這里的 serviceId 需要在上面的 getBLEDeviceServices 接口中獲取
  serviceId: serviceId,  // 這里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中獲取
  characteristicId: characteristicId,
  success: function (res) {console.log('readBLECharacteristicValue:', res.characteristic.value)
  }
})

Bug & Tip

  1. tip: 并行調用多次讀寫接口存在讀寫失敗的可能性。

  2. tip:read接口讀取到的信息需要在onBLECharacteristicValueChange方法注冊的回調中獲取。

wx.writeBLECharacteristicValue(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

向低功耗藍牙設備特征值中寫入二進制數據。注意:必須設備的特征值支持write才可以成功調用,具體參照 characteristic 的 properties 屬性

tips: 并行調用多次讀寫接口存在讀寫失敗的可能性

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 藍牙特征值對應服務的 uuid
characteristicId string 藍牙特征值的 uuid
value ArrayBuffer 藍牙設備特征值對應的二進制值(注意:vConsole 無法打印出 ArrayBuffer 類型數據)
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息

示例代碼:

// 這里的回調可以獲取到 write 導致的特征值改變wx.onBLECharacteristicValueChange(function(characteristic) {  console.log('characteristic value changed:', characteristic)
})// 向藍牙設備發送一個0x00的16進制數據let buffer = new ArrayBuffer(1)let dataView = new DataView(buffer)
dataView.setUint8(0, 0)

wx.writeBLECharacteristicValue({  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,  // 這里的 serviceId 需要在上面的 getBLEDeviceServices 接口中獲取
  serviceId: serviceId,  // 這里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中獲取
  characteristicId: characteristicId,  // 這里的value是ArrayBuffer類型
  value: buffer,
  success: function (res) {console.log('writeBLECharacteristicValue success', res.errMsg)
  }
})

wx.notifyBLECharacteristicValueChanged(OBJECT)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

啟用低功耗藍牙設備特征值變化時的 notify 功能。注意:必須設備的特征值支持notify才可以成功調用,具體參照 characteristic 的 properties 屬性

另外,必須先啟用notify才能監聽到設備 characteristicValueChange 事件

OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 藍牙特征值對應服務的 uuid
characteristicId string 藍牙特征值的 uuid
state boolean true: 啟用 notify; false: 停用 notify
success Function 成功則返回本機藍牙適配器狀態
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數:

參數 類型 說明
errMsg string 成功:ok,錯誤:詳細信息

示例代碼:

wx.notifyBLECharacteristicValueChanged({
  state: true, // 啟用 notify 功能
  // 這里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中獲取
  deviceId: deviceId,  // 這里的 serviceId 需要在上面的 getBLEDeviceServices 接口中獲取
  serviceId: serviceId,  // 這里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中獲取
  characteristicId: characteristicId,
  success: function (res) {console.log('notifyBLECharacteristicValueChanged success', res.errMsg)
  }
})

wx.onBLEConnectionStateChanged(CALLBACK)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

監聽低功耗藍牙連接的錯誤事件,包括設備丟失,連接異常斷開等等。

CALLBACK參數說明:

參數 類型 說明
deviceId string 藍牙設備 id,參考 device 對象
connected boolean 連接目前的狀態

示例代碼:

wx.onBLEConnectionStateChanged(function(res) {  // 該方法回調中可以用于處理連接意外斷開等異常情況
  console.log(`device ${res.deviceId} state has changed, connected: ${res.connected}`)
})

wx.onBLECharacteristicValueChange(CALLBACK)


基礎庫版本 1.1.0 開始支持,低版本需做兼容處理

監聽低功耗藍牙設備的特征值變化。必須先啟用notify接口才能接收到設備推送的notification。

CALLBACK參數說明:

參數 類型 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 特征值所屬服務 uuid
characteristicId string 特征值 uuid
value ArrayBuffer 特征值最新的值(注意:vConsole 無法打印出 ArrayBuffer 類型數據)

示例代碼:

wx.onBLECharacteristicValueChange(function(res) {  console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`)
})

藍牙錯誤碼(errCode)列表

錯誤碼 說明 備注
0 ok 正常
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
10010 no descriptor 沒有找到指定描述符

到此,關于“openBluetoothAdapter初始化藍牙適配器的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

边坝县| 含山县| 石景山区| 黄大仙区| 神池县| 保定市| 汉沽区| 新绛县| 吉木萨尔县| 江山市| 平谷区| 拉萨市| 宣威市| 清流县| 衡水市| 万山特区| 靖宇县| 同仁县| 义马市| 盖州市| 盐源县| 台中市| 兰西县| 公安县| 洛隆县| 石泉县| 平安县| 望都县| 桑日县| 墨江| 潞城市| 上蔡县| 贵港市| 新泰市| 扶余县| 水城县| 景德镇市| 平潭县| 通州区| 红原县| 绍兴市|