Payne
Payne
  • 发布:2018-12-13 17:43
  • 更新:2018-12-20 11:41
  • 阅读:1977

5+APP的蓝牙writeBLECharacteristicValue问题

分类:Native.js

5+APP的蓝牙writeBLECharacteristicValue
按照示例写好以后永远只能收到字符串[object ArrayBuffer]
不管发送什么收到的都是这个字符串
示例参考:http://www.html5plus.org/doc/zh_cn/bluetooth.html#plus.bluetooth.writeBLECharacteristicValue

手机型号已截图发送附件
软件打包temp1.zip

联系方式
[QQ]419958824

2018-12-13 17:43 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

返回的value数据类型是ArrayBuffer对象,所以console.log转换(toString)输出一定是“[object ArrayBuffer]”,需要使用DataView的类型(如Int8Array)进行操作:

    plus.bluetooth.onBLECharacteristicValueChange(function(e){  
        // 转化成16进制字符串输出显示  
        if(e.value){  
            var t = '', v = new Uint8Array(e.value);  
            for(var i in v){  
                t += '0x'+v[i].toString(16)+' ';  
            }  
            console.log(t);  
        }  
    });  
  • Payne (作者)

    这个Bug是把value发送出去后,终端只能收到[object ArrayBuffer]字符串,和console.log没有任何关系,终端收到的就是[object ArrayBuffer]这个字符串的二进制数据,我的终端是micro:bit设备~

    2018-12-15 10:54

  • DCloud_App_Array

    是Android还是iOS?

    2018-12-17 17:01

  • Payne (作者)

    回复 DCloud_App_Array:Android系统;我使用Native.js的方式实现Android API完成这个操作就没有这种情况,感觉是这个接口里Android实现问题!

    2018-12-20 11:37

该问题目前已经被锁定, 无法添加新回复