Android通过蓝牙与单片机(HC-05)进行通信,接收数据
来源:互联网 发布:收钱软件哪个好 编辑:程序博客网 时间:2024/06/05 07:10
怕忘
蓝字是链接,打开会有更多惊喜。
- 首先,可以明确的是,与单片机进行通信的时候,会很明确的知道是有多少个数据;
所以我们就可以根据其长度设置要存取的byte[]长度; - 其次,蓝牙的接收和发送试药建立在独立线程里面的;
搜索和配对/通信(后来在某篇博客里面发现,说是和单片机通信的话可以直接连接,完了可以试试) - 再之,就是和单片机通信的时候,它发送的都是16进制的东西,所以要么转换,要么直接用byte[];
- 最后,读取的时候,InputStream有read(),read(byte[] b),read(byte[] b,int off,int len),可以参考↓使用;
read()和read(byte[] b)
read(byte[] b,int off,int len)
while(true){ try { num = inputStream.read(buffer_z);//buffer_z和buffer_z_new都是1024 n=0; for(i=0;i<num;i++){ buffer_z_new[n] = buffer_z[i]; n++; } String s =bytesToHexString(buffer_z_new);//因为单片机发出的是16进制的,直接读取会是乱码,于是进行了转换。 smsg+=s.trim(); if(inputStream.available()==0)break;//有时候会因为某些原因,会出现有数据但是位0的问题,可以尝试添加延时; } catch (IOException e) { e.printStackTrace(); } }
public static String bytesToHexString(byte[] bytes) { String result = ""; for (int i = 0; i < bytes.length; i++) { String hexString = Integer.toHexString(bytes[i] & 0xFF); if (hexString.length() == 1) { hexString = '0' + hexString; } result += hexString.toUpperCase(); } return result; }
但是以上读取的时候,有时候会出现丢包的现象,后来再百般询问,浏览之后,得到的结论是:
如果ble需要对事件广播进行监听;如果只是普通蓝牙直接使用接口函数即可,但是需要使用循环(for)不断读一个字节的函数,不能直接读一串。
比如:
int i = 0,size = 0; byte[] oneByte = new byte[1]; for(i = 0; i< 64386;i++){ //读后面所有数据 size = inputStream.read(oneByte, 0, 1); if (size != 1) { return; } bufData[i] = oneByte[0];//将循环出来的每一个字节存放在总byte[]里面。 }
以上。
阅读全文
0 0
- Android通过蓝牙与单片机(HC-05)进行通信,接收数据
- STC89C52单片机通过HC-06蓝牙模块与Android手机通信
- 【Android开发 蓝牙通信】手机蓝牙与下位机HC-05蓝牙模块通信系统
- 实现蓝牙HC-05、06与单片机的连接及与手机通信(转)
- HC-05蓝牙模块与电脑通信
- 实现蓝牙HC-05、06与单片机的连接…
- 蓝牙模块HC-05与51单片机的连接
- STM32控制HC-05蓝牙模块进行通信
- Arduino与HC-05蓝牙模块的通信
- msp430f149通过蓝牙HC-05与手机通…
- Android通信蓝牙HC-06思路
- Android蓝牙通信——与蓝牙模块进行通信传输数据
- ATmega328P的hc-05蓝牙模块通信
- 手机与单片机通过蓝牙通信----手机控制灯
- 安卓手机通过蓝牙与单片机通信
- 安卓手机通过蓝牙与单片机通信
- android手机通过串口蓝牙透传模块与AVR单片机通信实例。。。蓝牙服务程序案例
- HC-05与安卓通信数据丢失问题解决
- mysql常用操作 密码,常用命令,用户管理
- Intellij IDEA 中提示 Error Updating Changes xxx git xxx 错误的解决方法
- 微服务架构的分布式事务解决方案
- php laravel框架URL重写
- QTreeview之setData绑定一个对话框
- Android通过蓝牙与单片机(HC-05)进行通信,接收数据
- VS2015 VMware Win10驱动调试环境问题总结
- Android状态栏颜色修改,取消状态栏
- 银行场景测试-服务器脚本
- 数据挖掘模型中的IV和WOE详解
- Centos6.9 Python2.6升级2.7
- 时间都去哪了
- 基于haar+adaboost的人脸检测、深度学习的人脸识别技术应用综述
- 到现在做过广搜的题(判价值)的思考