如何android ble协议读取数据速度

zlc19910818 2015-08-21 04:29:06
大家好,不知道论坛里面做BLE的多不多。
现在我用android 4.4 作为central设备,ti的c2451作为peripheral 设备,已经成功读取c2541的characteristic.但是速度却比较慢。我在android上面抓了一下发现完成一次20B读取需要50ms左右。(我已经修改了c2541上面的连接参数,min/max connection interval 已经调成6了, slave latency为0 ). 但是根据BLE协议上面它的传输速度可以达到5.9kb/s, ti的人也说最起码4kb/s 是没问题的。所以问题是不是在android 代码这边。我是基于 BluetoothLeGatt Demo 修改的。下面是相关部分代码。如果需要我可以发全部代码。所以有没有做过这方面内容的高手帮忙解决一下?不胜感激。
发出读数据请求:
//测试读取当前Characteristic数据,会触发mOnDataAvailable.onCharacteristicRead()
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mBLE.readCharacteristic(gattCharacteristic);
}
}, 5);
接收到数据:
@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
if (status == BluetoothGatt.GATT_SUCCESS)
Log.e(TAG,"onCharRead "+gatt.getDevice().getName()
+" read "
+characteristic.getUuid().toString()
+" -> "
+Utils.bytesToHexString(characteristic.getValue()));
}
...全文
1954 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
一梦天荒 2017-03-13
  • 打赏
  • 举报
回复
问题解决了吗?我现在也遇到了。求赐教
Fans_Mo 2016-11-08
  • 打赏
  • 举报
回复
亲。。。。一年过去了。。。。。你又@我。。。。。。
幻影宇寰 2016-10-10
  • 打赏
  • 举报
回复
引用 5 楼 mapeifan 的回复:
楼主,可以看下源码吗?谢了,兄弟我最近也在搞这一方面的东西,感觉跟传统蓝牙的区别还是蛮大的,传统蓝牙搞过一段时间,最近又要搞BLE ,时间不多,哥们给我发个你的demo,我参考下,在下先谢过了,我的邮箱790462002@qq.com 谢了(PS:目前我只做了扫描的功能,链接这块还没搞,传统蓝牙直接扫描,BLE却麻烦一点)
引用 7 楼 opponent58 的回复:
楼主你好,最近也在做ble这一块,设备是提供温度信息,Android手机也能和设备连接,但是读取不到温度信息。求指教,顺便求demo一份550764580@qq.com
引用 11 楼 hzlswkuqzgehvj1994 的回复:
楼主你好!最近在做BLE,在接受数据时接收不到。求指点,要是有源码发一份谢谢,邮箱是1632401541@qq.com
引用 12 楼 baidu_35936880 的回复:
楼主,我也被这个Ble搞得挺头疼的,如果你解决了,麻烦给点指引,给源码我学习参考,谢谢 769593935qq。com
Android BLE基础操作框架,源码地址:https://github.com/xiaoyaoyou1212/BLE,希望对你们有所帮助!
奋斗的IT青年 2016-10-10
  • 打赏
  • 举报
回复
android 发送的也不快(一个包限制20字节,每次的发送间隔大于20ms),但是丢包。搞不懂啥情况
baidu_35936880 2016-08-22
  • 打赏
  • 举报
回复
楼主,我也被这个Ble搞得挺头疼的,如果你解决了,麻烦给点指引,给源码我学习参考,谢谢 769593935qq。com
利剑封天 2016-07-29
  • 打赏
  • 举报
回复
楼主你好!最近在做BLE,在接受数据时接收不到。求指点,要是有源码发一份谢谢,邮箱是1632401541@qq.com
d-lancer 2016-04-05
  • 打赏
  • 举报
回复
麻烦楼主帮我解答下:我已经实现的功能是可以发送数据控制,但是接收的数据并非反馈的数据而是发送控制的数据,也就是写进入和都出来的都是写的数据,怎么办?另外 notice和read 有什么区别? 谢谢。
Junk Chen 2016-03-21
  • 打赏
  • 举报
回复
Android Ble4.0的速度可以的,达到5k都没有问题的,应该是你的cc2540那边没有发过来没有处理好
DuoYiDianAiShao 2016-03-03
  • 打赏
  • 举报
回复
请问你解决这个问题了么?我也遇到这个问题了,求帮助
opponent58 2016-01-23
  • 打赏
  • 举报
回复
楼主你好,最近也在做ble这一块,设备是提供温度信息,Android手机也能和设备连接,但是读取不到温度信息。求指教,顺便求demo一份550764580@qq.com
anabiosispe 2015-11-29
  • 打赏
  • 举报
回复
传输速率不要天真的认为只是受本身的蓝牙协议版本限制的,实际上跟设备两端的蓝牙模块也有相当的关系。 凭我的实际经验,ble协议只是理论速率,实际上有很多蓝牙模块芯片根本远达不到那个理论速率
Fans_Mo 2015-11-26
  • 打赏
  • 举报
回复
楼主,可以看下源码吗?谢了,兄弟我最近也在搞这一方面的东西,感觉跟传统蓝牙的区别还是蛮大的,传统蓝牙搞过一段时间,最近又要搞BLE ,时间不多,哥们给我发个你的demo,我参考下,在下先谢过了,我的邮箱790462002@qq.com 谢了(PS:目前我只做了扫描的功能,链接这块还没搞,传统蓝牙直接扫描,BLE却麻烦一点)
lucky_tom 2015-11-03
  • 打赏
  • 举报
回复
考虑一下notify的方式,在onCharacteristicChanged回调方法中接收数据,ble速度2kb/s左右没问题的。
Edisonliao666 2015-10-31
  • 打赏
  • 举报
回复
最近我也在搞BLE,还没搞明白Characteristic、Service、Indicator三者的角色和关系
github_32456853 2015-10-31
  • 打赏
  • 举报
回复
我最近项目做的东西跟你一样,也是android 4.4 和 c2451通讯,这个问题你要问单片机那边的开发人员,他c2451芯片的连接间隔设置为多少了,是否是50ms
八爪 章鱼 2015-10-29
  • 打赏
  • 举报
回复
可以考虑一下定时发送,做个定时器,定时3ms发送20B数据

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧