微信小程序之藍牙的鏈接
微信小程序藍牙連接2.0說明:
1、本版本區分了ANDROID和IOS系統下藍牙連接的不同方式。
2、兼容了更多情況下的鏈接包括:
(1)未開啟設備藍牙,當監聽到開啟了藍牙后自動開始連接。
(2)初始化藍牙失敗后每3000ms自動重新初始化藍牙適配器。
(3)安卓端開啟藍牙適配器掃描失敗,每3000ms自動重新開啟。
(4)IOS端獲取已連接藍牙設備為空,每3000ms自動重新獲取。
(5)安卓端藍牙開始鏈接后中斷掃描,連接失敗了,重新開始掃描。
(6)IOS端開始連接設備后,停止獲取已連接設備,連接失敗自動重新開啟獲取。
(7)連接成功后,關閉系統藍牙,藍牙適配器重置。
(8)連接成功后,關閉系統藍牙,再次打開藍牙,自動重新開始連接。
(9)連接成功后,關閉目標藍牙設備,自動重新開始掃描(獲取)。
(10)連接成功后,最小化小程序(連接未中斷),打開小程序顯示已連接。
(11)連接成功后,殺掉小程序進程,連接關閉,自動重新開始掃描(獲取)。
3、想起來了再來更新....。
4、流程圖,明天或后天或...誰有空幫我畫一下也行。
我的連接是在App.js中做的。
在App.js中的onLaunch觸發是調用 init()方法。
init代碼:
init: function (n) { this.list = []; this.serviceId = "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"; this.serviceId_2 = "00001803-0000-1000-8000-00805F9B34FB"; this.serviceId_3 = "00001814-0000-1000-8000-00805F9B34FB"; this.serviceId_4 = "00001802-0000-1000-8000-00805F9B34FB"; this.serviceId_5 = "00001804-0000-1000-8000-00805F9B34FB"; this.serviceId_6 = "00001535-1212-EFDE-1523-785FEABCD123"; this.characterId_write = "6E400042-B5A3-F393-E0A9-E50E24DCCA9E"; this.characterId_read = "6E400012-B5A3-F393-E0A9-E50E24DCCA9E"; this.connectDeviceIndex = 0; this.isGettingConnected = false; this.isDiscovering = false; this.isConnecting = false; this.connectedDevice = {}; console.log('init state', this.connectedDevice.state); if (!this.connectedDevice.state || n == 200) { this.connectedDevice.state = false; this.connectedDevice.deviceId = ''; this.adapterHasInit = false } this.startConnect(); }說明:
1、 serviceId_2~6 是我已知的想要連接的藍牙設備的serviceId可以只寫一個。
2、characterId_write 是我已知的想要連接的藍牙設備寫入數據的特征值。
3、characterId_read是我已知的想要連接的藍牙設備讀取數據的特征值。
(以上3個都是為了做比對,真實的操作按照獲取到的sericeid, characterid為準)。
4、connectedDevice 是已連接了的設備信息對象。
init完成后開始調用連接 startConnect();
新聞熱點
疑難解答