网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

跳坑《一百七十六》藍牙API使用指南

發布時間:2018-04-20 10:27 所屬欄目:小程序開發教程
目前藍牙資料極少,但是為了讓大家能夠迅速的了解新API及可能遇到的問題,本帖將不斷聚合跟藍牙相關的內容;以便大家參考;

官方文檔地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/bluetooth.html
基礎庫版本 1.1.0 開始支持,低版本需做兼容處理
iOS 微信客戶端 6.5.6 版本開始支持,Android 客戶端目前已經支持
由于系統的問題,目前僅在 mac 版的開發工具上支持藍牙調試
  • tip: Mac系統可能無法獲取advertisData及RSSI,請使用真機調試
  • tip: 開發者工具和 Android 上獲取到的deviceId為設備 MAC 地址,iOS 上則為設備 uuid。因此deviceId不能硬編碼到代碼中
  • 開發者工具和 Android 上獲取到的deviceId為設備 MAC 地址,iOS 上則為設備 uuid。因此deviceId不能硬編碼到代碼中
  • tip: 并行調用多次讀寫接口存在讀寫失敗的可能性。
  • tip: read接口讀取到的信息需要在onBLECharacteristicValueChange方法注冊的回調中獲取。
     

藍牙錯誤碼(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 沒有找到指定描述符



推薦貼:
微信小程序藍牙實現連接的開發總結
【藍牙】開發相關匯總【長期更新】

相關文章:
微信小程序實現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還沒有更新最新版本的公共庫

目前需要使用 mac 版本開發工具或者 iOS 機器來調試


相關討論:
藍牙功能 怎么沒有發送數據 和 監聽數據返回的
新開放的藍牙功能 沒有交互數據的嗎 怎么沒有發送數據 和 監聽數據返回的
wx.readBLECharacteristicValue(OBJECT)
wx.writeBLECharacteristicValue(OBJECT)


相關討論:
藍牙寫入數據 有個問題沒有可以寫入的值。  比如 寫入  AA5504B10000B5  的16進制字符串  ,改怎么寫入。
1.jpg
參數列表里面有寫
wx.writeBLECharacteristicValue(OBJECT)
向低功耗藍牙設備特征值中寫入二進制數據。注意:必須設備的特征值支持write才可以成功調用,具體參照 characteristic 的 properties 屬性
tips: 并行調用多次讀寫接口存在讀寫失敗的可能性
OBJECT參數說明:

參數 類型 必填 說明
deviceId string 藍牙設備 id,參考 device 對象
serviceId string 藍牙特征值對應服務的 uuid
characteristicId string 藍牙特征值的 uuid
value ArrayBuffer 藍牙設備特征值對應的二進制值


相關討論:
安卓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服務也無響應
  • 確保設備是低功耗藍牙設備而不是經典藍牙設備
  • 懷疑設備 mac 地址不正確,可以在 mac 上下一個 lightblue 的 app 嘗試連接

     


我在ios上面是可以找到我的設備的, 但是地址不一樣了, 設備名稱沒有變化 例如:安卓自己開發的APP下面設備地址:00:15:83:00:85:0A 但是IOS下面變成這樣了:57473C16-BCEC-4BC5-9FD7-68FD484B7CC1 修復地址以后可以正確訪問的 你不要指定地址,先掃描設備,應該可以找到你的設備





相關討論:
小程序藍牙開發藍牙相關的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
剛才嘗試了安卓和蘋果的手機返回來的數據不一樣,這樣子輸出出來看看就知道了,但是這個

1111.jpgwx.onBLECharacteristicValueChange(CALLBACK)
這個接口沒有實時的數據返回來

 

新增案例:wx.onBluetoothDeviceFound參數類型不統一 
wx.onBluetoothDeviceFound(function(devices) {
        console.log(devices)
}
打印devices
在Mac中devices=[object]
在iphone中devices={ devices : [object] }
在android中devices=object

答:庫從建 
需要這樣才能統一操作,希望能統一一下參數

44.jpg


新增案例:關于小程序讀取藍牙特征值問題 
有人成功使用小程序調通BLE的嗎?為什么我讀取的特征值返回的value都是——proto:null
答:開泰 
function buf2hex(buffer) { // buffer is an ArrayBuffer
  return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');
}

轉換下格式就可以了

新增案例:微信小程序的藍牙功能支持連接OBD讀取車載信息嗎?微信小程序的藍牙功能支持連接OBD讀取車載信息嗎? 
答:林超
理論上如果是低功耗藍牙都是可以接入的


新增案例:
手機測試藍牙API,不走devicefound回調,求指導 上面的代碼,在mac上調試都沒問題,用手機調試就發現不走回調(蘋果和安卓微信版本都是6.5.7)
4.jpg
答:飛
參考一下吧,我這個是蘋果真機測試(版本6.5.6)可以執行333.jpg

新增案例:
問題:
藍牙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確一直是空對象,

請問 是不是在底層這里的二進制轉換沒有做,導致字符串對象為空,還是說這里有什么其他方法可以處理的。


答:維明 
sendtoequ: function (e) {
        var that = this
        console.log(this.data.services)
        console.log("發送消息到:deviceId" + that.data.connectedDeviceId);
        console.log("serviceId:" + that.data.services[0].uuid);
        console.log("characteristicId:" + that.data.characteristicId);


        //這里是核心,自己編碼協議
        let buffer = new ArrayBuffer(1)
        let dataView = new DataView(buffer)
        dataView.setUint8(0, 6)
         //這里是核心,自己編碼協議


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


這段是給藍牙設備發了一個字節
方便大家 我自己回答了 收到的數據是二進制格式的,根據自己的協議來讀吧。
舉個例子
wx.onBLECharacteristicValueChange(function (characteristic) {
console.log('characteristic value comed:')
let buffer = characteristic.value
let dataView = new DataView(buffer)
console.log(dataView.getUint8(1))
})


易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/23738.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×