目前藍牙資料極少,但是為了讓大家能夠迅速的了解新API及可能遇到的問題,本帖將不斷聚合跟藍牙相關的內容;以便大家參考; 官方文檔地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/bluetooth.html
藍牙錯誤碼(errCode)列表
推薦貼:
微信小程序藍牙實現連接的開發總結
【藍牙】開發相關匯總【長期更新】 相關文章: 微信小程序實現BLE藍牙連接 【經驗總結】小程序有效判斷手機藍牙開/關狀態 微信小程序 藍牙BLE開發實戰(附demo) 微信小程序更新--測試API之藍牙 微信小程序最新更新--api測試一覽 微信小程序--Ble藍牙 相關demo: 微信小程序藍牙通訊demo 微信小程序學習用demo:藍牙測試 微信小程序 低耗藍牙接口封裝 相關討論: Android環境 wx.writeBLECharacteristicValue寫入數據無通知 小程序連接Android 藍牙ble,只搜到自帶的service 相關討論: 小程序藍牙設備支持咨詢
很雞凍,在28日小程序放出支持藍牙設備的接口,使小程序的控制功能更厲害.但細看文檔后發現該功能目前僅支持iOS 微信客戶端 6.5.6和只能在mac開發工具上進行調試。
存有2個疑問:
1、未來會否支持安卓的藍牙控制?
2、Windows版的開發工具是否支持藍牙接口的開發(如電腦沒藍牙的,在安卓機上調試)?
下載最新的Android6.5.7已經支持,Windows由于對藍牙支持不友好,暫不支持。 假如你的安卓仍未支持,請將安卓升級到6.5.7版及以上,重啟一下手機進入微信。就可以進行藍牙測試了 相關討論: 微信已是6.5.6版本,但是基礎庫版本還是舊的,應該怎么辦? 需要調試藍牙接口,很著急 Android還沒有更新最新版本的公共庫 相關討論: 藍牙功能 怎么沒有發送數據 和 監聽數據返回的 新開放的藍牙功能 沒有交互數據的嗎 怎么沒有發送數據 和 監聽數據返回的 wx.readBLECharacteristicValue(OBJECT) 相關討論: 藍牙寫入數據 有個問題沒有可以寫入的值。 比如 寫入 AA5504B10000B5 的16進制字符串 ,改怎么寫入。 ![]()
相關討論: 安卓6.5.7版本的微信不支持藍牙嗎?
安卓6.5.7版本的微信不支持藍牙嗎?
提示找不到wx.openBluetoothAdapter函數
兼容處理只是檢查有沒有該接口。
我想知安卓是不是基礎庫不支持?
[AppleScript] 純文本查看 復制代碼
if (wx.openBluetoothAdapter) { wx.openBluetoothAdapter() } else { // 如果希望用戶在最新版本的客戶端上體驗您的小程序,可以這樣子提示 wx.showModal({ title: '提示', content: '當前微信版本過低,無法使用該功能,請升級到最新微信版本后重試。' }) } 基礎庫還未更新,請參考文檔如何做兼容處理 相關討論: 小程序的藍牙功能,如何獲取藍牙的major minor 值;發送到設備的指令后,沒有返回數據,改怎么處理 此功能屬于 ibeacon 功能,需要使用 ibeacon 請等下一版本的相關接口 相關討論: 藍牙接口無法獲取advertisData
onBluetoothDeviceFound回調返回的設備數據有問題,無法獲得藍牙廣播數據(ibeacon設備),advertisData為空。
getBluetoothDevices也一樣。
mac 上存在底層接口限制,無法獲取 BLE 設備的 advertisData 相關討論: 藍牙API在mac上調試問題
用mac測試藍牙可以搜到設備,但是讀到的mac地址不對(跟實際的mac地址不一樣),用真機測試,連設備都掃不到,經測試發現wx.onBluetoothDeviceFound(function(devices) 這個回調沒有響應,求各位指導下,謝謝
圖中是用mac測試,搜索到的mac地址,但是實際的地址不一樣,用這個地址去掃描service服務也無響應
相關討論: 小程序藍牙開發藍牙相關的API介紹中提到目前只支持MAC系統調試,windows系統環境下寫代碼然后預覽上傳到iphone手機上測試是否可行 可行 新增討論:安卓藍牙
今天發現小程序可以支持安卓藍牙API了,但測試了下wx.getBluetoothDevices這個API報錯!
另外向非低功耗藍牙設備發送數據的場景如何實現?比如我要使用藍牙便攜打印機(非低功耗藍牙)
答:追夢的人
Page({
onLoad: function () {
//var that = this;
wx.openBluetoothAdapter({
success: function (res) {
console.log(res)
wx.getBluetoothAdapterState({
success: function (res) {
console.log(res)
}
})
wx.startBluetoothDevicesDiscovery({
success: function (res) {
console.log(res)
}
})
wx.getConnectedBluetoothDevices({
success: function (res) {
console.log(res)
}
})
wx.getBluetoothDevices({
//services: ['0019E0A29C02'],
success: function (res) {
console.log(res)
// that.setData({
// // BLT_name: res.devices[0].name,
// // BLT_deviceId: res.devices[0].deviceId,
// // BLT_RSSI: res.devices[0].RSSI
// // BLT_advertisData: res.devices[0].advertisData
// })
}
})
}
})
}
})
控制臺輸出,就wx.getBluetoothDevices報錯,其他四個API正常。
錯誤代碼:cannot read property 'map' of undefined
新增案例:wx.onBluetoothDeviceFound參數類型不統一
wx.onBluetoothDeviceFound(function(devices) {
console.log(devices)
}
打印devices
在Mac中devices=[object]
在iphone中devices={ devices : [object] }
在android中devices=object
答:庫從建
新增案例:關于小程序讀取藍牙特征值問題 有人成功使用小程序調通BLE的嗎?為什么我讀取的特征值返回的value都是——proto:null 答:開泰 function buf2hex(buffer) { // buffer is an ArrayBuffer 新增案例:微信小程序的藍牙功能支持連接OBD讀取車載信息嗎?微信小程序的藍牙功能支持連接OBD讀取車載信息嗎?
答:林超
新增案例: 手機測試藍牙API,不走devicefound回調,求指導 上面的代碼,在mac上調試都沒問題,用手機調試就發現不走回調(蘋果和安卓微信版本都是6.5.7) ![]()
答:飛
參考一下吧,我這個是蘋果真機測試(版本6.5.6)可以執行 新增案例:
問題:
藍牙indication可以用哪個API操作
答:吳清生
搞半天換臺蘋果手機可以用了,android notify API不支持indication
相關討論:
讀取藍牙設備發出的數據問題
使用 wx.writeBLECharacteristicValue(OBJECT) 發送數據的時候,發送的數據在設備上可以接收到,并且正常,
但是使用 wx.readBLECharacteristicValue(OBJECT) 接收數據的時候,確一直接收不到,
我用了 使用了 wx.onBLECharacteristicValueChange(CALLBACK) 來監聽數據,數據發送來的時候事件確實可以激活,但是
wx.onBLECharacteristicValueChange(function(res) {
console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`)
})
上面代碼的res.value確一直是空對象,
請問 是不是在底層這里的二進制轉換沒有做,導致字符串對象為空,還是說這里有什么其他方法可以處理的。
答:維明
方便大家 我自己回答了 收到的數據是二進制格式的,根據自己的協議來讀吧。 |