安卓写入之后监听不到返回的事件怎么解决 的呀。还是说当时你写的时候某一个hbuilder版本是好的,现在更新之后,出bug了嘛。但是我如果用read会得到一些数据,但是不是我预想的数据。另外设备我用ios测试是正常的。看到回一下吧。感谢。
北极大尾巴狼
- 发布:2022-08-01 20:50
- 更新:2022-11-02 15:45
- 阅读:1205
我看了下安卓的源码,如果写入失败,是没有回调返回错误信息的,我推测可能是写特征值因为某些原因失败了吧,我建议看看下面2个方法能不能找到线索:
第一种可能,安卓我设置了默认MTU是185字节(和苹果的缺省MTU值一致),看看写入值是不是超过了185,如果超过了,会不会报错我没试过,主要我自己没传过那么多字节,可以发个小点的值
第二种可能,可能发生了我也不清楚的异常导致写特征值失败,可以看看安卓有没有打印什么异常信息,使用adb命令查看APP实时日志,HBuilderX自带的adb.exe在【HBuilderX\plugins\launcher\tools\adbs】,或者如果你是离线打包直接在android studio 控制台看,日志关键字“读取特征值失败:”或“writeListener”
老醒
2022-08-02 19:20
北极大尾巴狼 (作者)
回复 老醒: 您好,感谢回复。我用您的插件,在安卓上读取出来的服务uuid 和用 uni 提供的ble接口在 ios上面读取出来的服务的uuid,同样的uuid,但是他的读写权限确实不一样的,ios上面的可以写的,安卓上面不可以写。但是我用ble调试app,发现读出来的服务和ios上面是一样的。另外,我用了好多插件,包括一些调试的app,所有人的notify功能都是失败的。只有您这个插件notify是成功了的,但是写入数据也还是没有从监听的接口获取到数据。主动read是可以监听到数据的。
2022-08-12 17:00
北极大尾巴狼 (作者)
直接写0010是可以进入2500的
2022-08-12 17:00
北极大尾巴狼 (作者)
我用原生写,把20字节发送量增加到最大,然后就可以了,猜测是发送虽然没有超过20,但是接受超过了20,卡住了。ios随便。
2022-08-18 16:14