2***@qq.com
2***@qq.com
  • 发布:2019-04-23 18:20
  • 更新:2020-04-05 23:23
  • 阅读:5546

HBuilder开发蓝牙BLE,安卓系统可正常读写,IOS下可以连接成功,但写失败

分类:HBuilderX

HBuilder开发蓝牙BLE,安卓系统可正常读写,IOS下可以连接成功,但写失败,执行写特征值时报错,属性不支持,我的蓝牙模块特征值属性如下:"notify":true,"write":false,"indicate":false,"read":true
其中write为false。应该和这个有关系,因为我使用另外一个厂家的蓝牙模块测试,write为true,同样的程序,是可以写成功的。谁有解决的方法
注:有问题的模块在ios下使用原生开发的app或者市场上下载的蓝牙助手,也可以正常读写
疑惑点:对于特征值属性write为false的BLE模块,应该怎么写数据

2019-04-23 18:20 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - 没有

我这边也遇到这个问题了。
5+app在蓝牙特征值是write without response的情况下,iOS getBLEDeviceCharacteristics得到的特征值json里,该特征值的write是false的。调用writeBLECharacteristicValue会出错,提示10007 property not support。android getBLEDeviceCharacteristics得到的json相同,write也是false,但是可以写入数据。
测过不同的蓝牙芯片都存在这个问题。另外我只要把蓝牙广播的write without response改为write,iOS就可以写入。然而write without response就不让写入数据,这个肯定是不对的。

2***@qq.com

2***@qq.com - 没有

补充一点,使用nRF CONNECT这个专业调试蓝牙的工具,write without response在iOS上是可以写入的。

2***@qq.com

2***@qq.com - 没有

HBuildx的版本为1.9.9.20190522,到目前为止的最新版本。
可否有人员给一个回复,下一版能改好否?

  • 1***@qq.com

    最气的就是安卓的可以写,ios的就是不行properties.write 是true的

    2019-06-04 15:02

CLP

CLP

能提供下设备,我们测试下吗

  • 2***@qq.com

    如何提供给你们呢

    2019-06-17 10:27

  • 2***@qq.com

    可以单独加一下联系方式,然后沟通吗,我需要追踪这个BUG的进度

    2019-06-17 10:28

  • 2***@qq.com

    麻烦加一下我的qq:273647091。我给你们提供蓝牙模块测试这个问题。跟你们沟通相关细节,帮你们快速解决这个BUG。请快点联系我。谢谢!

    2019-06-17 11:02

  • 2***@qq.com

    这个问题解决了吗?ios写入的时候报设备的特征值变化 : {"Error":"Error Domain=CBATTErrorDomain Code=6 \"The request is not supported.\" UserInfo={NSLocalizedDescription=The request is not supported.}","characteristicId":"0000ff01-0000-1000-8000-00805f9b34fb","code":0,"deviceId":"6850397C-B5BE-BC14-4359-8AB9D678EB0B","serviceId":"0000ff00-0000-1000-8000-00805f9b34fb"}

    2019-06-21 15:03

  • CLP

    回复 2***@qq.com: 你的特征值的write也是false是吗

    2019-06-21 16:04

  • 2***@qq.com

    回复 CLP: 是true

    2019-06-21 16:06

  • CLP

    回复 2***@qq.com: iOS上的第三方的工具 能写吗 这个error提示是iOS系统提示的

    2019-06-21 16:08

  • 2***@qq.com

    回复 CLP: 用安卓运行读写都没问题,在ios上面才会出现报错 {"properties":{"indicate":false,"notify":false,"read":false,"write":true},"uuid":"0000FF01-0000-1000-8000-00805F9B34FB"}

    2019-06-21 16:09

  • 2***@qq.com

    回复 CLP: 可以,用苹果第三方工具测试是没问题的

    2019-06-21 16:10

  • CLP

    回复 2***@qq.com: 忽略这个报错 直接写后订阅监听 能有数据吗

    2019-06-21 16:12

  • 2***@qq.com

    回复 CLP: 16:11:24.966 发送的数据包 = 1,32,0,32,215,17,242,189,54,177,10,141,254,127,243,32,56,59,111,52

    16:11:24.986 写入数据成功: {"code":0,"message":"ok"}

    16:11:25.006 第1数据包发送完成!

    16:11:25.026 发送的数据包 = 2,198,61,179,70,172,249,39,209,15,236,157,190,11,126,239,159,235,0,0

    16:11:25.046 设备的特征值变化 : {"Error":"Error Domain=CBATTErrorDomain Code=6 \"The request is not supported.\" UserInfo={NSLocalizedDescription=The request is not supported.}","characteristicId":"0000ff01-0000-1000-8000-00805f9b34fb","code":0,"deviceId":"6850397C-B5BE-BC14-4359-8AB9D678EB0B","serviceId":"0000ff00-0000-1000-8000-00805f9b34fb"}

    16:11:25.066 写入数据成功: {"code":0,"message":"ok"}

    16:11:25.086 第2数据包发送完成!

    16:11:25.106 设备的特征值变化 : {"Error":"Error Domain=CBATTErrorDomain Code=6 \"The request is not supported.\" UserInfo={NSLocalizedDescription=The request is not supported.}","characteristicId":"0000ff01-0000-1000-8000-00805f9b34fb","code":0,"deviceId":"6850397C-B5BE-BC14-4359-8AB9D678EB0B","serviceId":"0000ff00-0000-1000-8000-00805f9b34fb"}


    返回写入成功,但是监听没数据

    2019-06-21 16:16

  • 2***@qq.com

    回复 CLP: 用H5+官方案列也是报这个错误。

    2019-06-21 16:17

  • 2***@qq.com

    回复 CLP: 请问是不是调用ios蓝牙需要开启什么权限呢

    2019-06-21 16:27

2***@qq.com

2***@qq.com - 单色不单调

这个问题解决了吗?ios写入的时候报设备的特征值变化 : {"Error":"Error Domain=CBATTErrorDomain Code=6 \"The request is not supported.\" UserInfo={NSLocalizedDescription=The request is not supported.}","characteristicId":"0000ff01-0000-1000-8000-00805f9b34fb","code":0,"deviceId":"6850397C-B5BE-BC14-4359-8AB9D678EB0B","serviceId":"0000ff00-0000-1000-8000-00805f9b34fb"}

  • 花鸟风月

    IOS需要在每次write之后,在read一次,notify里面就会返回正确的值了。。。

    2019-06-21 16:41

  • 花鸟风月

    write的之后notify还是会返回上面的错,忽略就是,只要read之后notify里面返回的是对的就可以了

    2019-06-21 16:44

  • 2***@qq.com

    回复 花鸟风月: 谢谢,已经可以了

    2019-06-21 17:14

DCloud_App_Array

DCloud_App_Array

HBuilderX alpha(2.0.5)已修复此问题

  • 花鸟风月

    什么时候更新一下SDK吧,哈哈

    2019-07-11 17:14

a***@163.com

a***@163.com

IOS下 蓝牙(Bluetooth)特征值的write操作类型值还是为false,不能写数据啊

  • CLP

    最新版本的HBuilderX能写数据

    2019-07-22 17:02

  • a***@163.com

    回复 CLP: 已經更新到2.1.2了,还是不行

    2019-07-22 18:30

  • CLP

    回复 a***@163.com: 用lightblueapp查看下 特征值属性是什么

    2019-07-22 18:55

  • a***@163.com

    回复 CLP:write 返回的值是False 刚才试了可以发送了

    2019-07-22 18:58

  • 2***@qq.com

    回复 CLP: 是真的没有修复

    2019-08-08 09:24

  • CLP

    回复 2***@qq.com: 说明没有修复的理由

    2019-08-08 11:12

  • 2***@qq.com

    回复 CLP: 没有修复的理由如下:1 、特征值值订阅开启成功。但是没有您可以下载20190723; 不要用您的自己版本。

    2 、20190806 版本 ,订阅值开启可以使用。也能监听到值了,但是正式版没有发布出来。原因:我今天差点被辞职的原因就是因为这个,合同签了。但是发布出来的时候20190713 的是13号。 所以认为你们已经修复了。

    3 这里还有一个蓝牙bug 每次开启监听订阅后,写入数据,监听回传数据。 这种情况持续20分钟,5+app 出现情况,开始写入的时间 到写入成功会有递增5-10毫秒。 有甚者写入一个8位数的需要1-2秒的情况。 现在我被该成用uniapp . 希望您可以看看。如果有需要还原情况,我可以配合。

    2019-08-08 15:32

  • CLP

    回复 2***@qq.com: 1、这个帖子说修复的问题指的是特征值的write属性为false不能写的问题。2、你说的第3个问题是iOS还是安卓?你描述的20分钟,指的是监听到数据要20分钟? 另外,你描述的递增什么意思?,还有5+app和uniapp底层都是一样的。

    2019-08-08 16:00

  • 2***@qq.com

    回复 CLP: 感谢您的回答。问题没有没有描述清楚,深感歉意。

    1、获取蓝牙特征值的write 为false ;那么肯定不能写入。

    2、ios 获取监听订阅值,20190723之前的版本没有更新成功的。验证可以通过百度网盘的hbuilderX 下载下来验证。即无法监听数据。

    3 、5+app 在(红米note2, 荣耀3c、vivo 9 等手机)安卓机下。开启特征值监听。从写入数据,到写入数据成功响应。如果一监听就写入。这样操作20分钟。我统计了下时间,从开始写入到写入成功的时间回有增加的情况。 平均是5-10毫秒的递增情况。注:IOS没有测试。

    4 、5+app 跟uniapp 一样。那么蓝牙模块依然存在问题

    2019-08-08 16:39

  • CLP

    回复 2***@qq.com: 其他用户都能写入为啥你不能写入,写为false不能写的问题和不能订阅的问题现在没有问题了对吧

    2019-08-08 17:44

  • CLP

    回复 2***@qq.com: 回复 2***@qq.com: 其他问题,你开个帖子详细描述下。这里安卓同事看不到

    2019-08-08 17:45

newclear11

newclear11 - web开发人员

安卓设备 蓝牙获取的特征值 可读可写可notify 但是调用read方法 提示oroperty not support

5***@qq.com

5***@qq.com

demo
参考一下

4***@qq.com

4***@qq.com

作者能给一下数据传送的代码吗,我把读放在前面,写放在后面,写就报错。

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