问题描述

先描述一下问题,烦了我一段时间。我是在单片机上使用HC05蓝牙模块和安卓手机进行通讯,从手机往单片机发送正常,从单片机往手机发数据总是不完整,一段字符被分成几段了,安卓的程序用的是谷歌官方的BluetoothChat例程。

分析原因

分析了一下原因,谷歌官方的BluetoothChat读取线程的代码如上,是由于安卓程序使用InputStream读取时不能和串口一样设置一个结束符(串口的结束符一般是换行符'\r\n'),安卓中线程读取就很随机性了,你不知道它在什么时候就读完一刀下去,你的字符串就不完整了。

解决方案

本来想找找InputStream中有没有结束符这个东西,找了半天也没找到,所以还是自己写一个吧。

就是使用InputStream.read()逐个读取字符,判读是不是结束符,如果没到结束符就一直读取写入。

注意if(ch!=-1)这个判断不能省,如果什么也没读到就是返回-1,这个时候不能让字符写进去。最后我的调试成功了,发的字符串再长也不会被一刀切开了。

android 蓝牙 接收不完整,安卓蓝牙串口中InputStream数据接收不完整,已解决相关推荐

  1. 安卓串口中InputStream数据接收不完整

    串口读数组本身就很可能需要读几次才能读完,建议是写一个拼接数据的方法,每次记录读取的数据和数据的长度 一开始的写法如下 会出现串口读取断开情况 protected class LReadThread ...

  2. 二、搜索蓝牙并连接(安卓蓝牙ble教程)

    1.MainActivity.java 注:如果复制代码进项目时显示红色,请按ALT+ENTER键导包(import class) package club.stm32;import android. ...

  3. android连不上电脑,安卓手机USB数据线连接不上电脑的最佳解决方法

    许多用户都喜欢将手机连接电脑来解决一些问题或者上传一些图片到电脑中存储,不过近日有使用安卓手机的用户在将usb数据线连接电脑的时候,发现无法连接,导致无法上传手机照片图片到电脑上和传送apk手机软件到 ...

  4. 手机android开不了机,安卓手机开不了机,手把手教你如何解决安卓智能手机开不了机问题...

    现在几乎人手一部手机了,而且随着手机越来越融入我们的生活,手机开不了机导致无法使用对我们的影响也越来越大了,而现在的手机用户大多以安卓系统的手机为主,哪怕是杂牌机或者高仿机都以安卓系统为核心,因为安卓 ...

  5. 炉石传说 android pc 不同,炉石传说安卓版上市!开启数据互通时代!

    好消息!<炉石传说>安卓版上市了,除了PC和iPad,更多安卓平板用户的春天来临,普天同庆全民炉石时代正式开启,地精大战侏儒的战场已经蔓延到安卓,你准备好接招了吗!<炉石传说> ...

  6. android 设置字体包 字体包导致字体偏移 字体内边距问题(已解决)

    字体包存放位置 设置字体包方法1:(全局字体包) import android.content.Context; import android.graphics.Typeface;import jav ...

  7. Android开发:IBeacon系列——安卓蓝牙4.0(BLE)开发之检测IBeacon热点初步

    检测ibeacon热点信号 软硬件要求:Android4.3及以上中支持BLE技术,同时蓝牙需要满足Bluetooth4.0及以上. iBeacon的工作原理是基于Bluetooth Low Ener ...

  8. android 蓝牙速率测试软件,安卓蓝牙4.0开发测试 一个测试 APP - 下载 - 搜珍网

    压缩包 : MyBleTestDemo.rar 列表 MyBleTestDemo/.classpath MyBleTestDemo/.project MyBleTestDemo/.settings/o ...

  9. android 图案解锁忘记了,安卓手机忘记图形解锁、锁屏密码的解决方法

    Android 手机的图形解锁倒是真的好用了,主要是方便新颖,并且便于记忆,自从有了图形解锁,很多人都不再使用密码屏幕锁了,图形解锁倒是好玩,但是经常换来换去的话就会造成一时间想不起哪个图形解锁图案才 ...

最新文章

  1. 空心磁珠铁氧体抗干扰屏蔽磁环RH磁通高频磁芯圆形穿心磁珠滤波器
  2. Yii2中如何将Jquery放在head中的方法
  3. java网络编程_Java基础 网络编程
  4. SAP License:SAP工业4.0 创新智能物流解决方案
  5. windows Mobile使用ActiveSync上网
  6. java 地心坐标系(ECEF)和WGS-84坐标系(WGS84)互转
  7. 选择易优cms建站的十大理由
  8. matlab的取整函数
  9. 解决OneNote同步失败的问题
  10. 微软新的邮件帐户域名 @live.com和@windowslive.com
  11. C语言踢出字符,《懂球堂》| 大写的C字!如何踢出C罗一样的任意球
  12. 在VMware上安装Android虚拟机
  13. 电商产品设计:后台订单管理设计
  14. Navicat 连接数据库报错:1045-Access denied for user ‘root‘@‘localhos
  15. 基于QT的网络音乐播放器(一)
  16. AI 可以从人类思维中学习的11个启示
  17. [Python随笔]暴力解解决“崩铁”的引航罗盘解密
  18. xie wen ben ri zhi
  19. 2021年十大数据分析和商业智能趋势
  20. Deepin Linux 下 OSG 安装

热门文章

  1. MW测试网紧急升级公告
  2. 关于6轴传感器LSM6DSLTR的调试说明
  3. gurobi python_Gurobi
  4. JavaScript中的DOM对象
  5. 日积月累Day11《为什么家庭会生病》
  6. 极米 H6 4K 版投影仪 评测
  7. 计算机办公软件应用三套题目,办公软件应用试题中级汇编第3套
  8. 两步验证Authy时间同步问题
  9. 用python获取Windows的PID
  10. 708 循环有序列表的插入