蓝牙通信、画折线统计图的android应用
2014-12-11 14:27
357 查看
android功能:蓝牙通信,将数据以折线统计图的形式显示。
原用途:水表读数统计,将水流量上传到手机实时观测。稍加改动应该适用于任何统计量传输的应用。
GITHUB项目地址:https://github.com/wjbianjason/bluetooth
文件里面有一个蓝牙聊天app,你可以用它来模拟蓝牙模块传数据。但不确定还能用不,中途我改了里面的代码做了
专向的调整。
闲话不多讲,进入正题
先简单通过图片介绍功能,看是不是各位想要的
哎,CSDN写个博客真麻烦,希望操作界面能再人性化一点。
该工程包含两个程序包,其中com.ds.bluetooth是主要功能程序包,另一个程序包com.ds.bluetoothUtil是蓝牙实现
的辅助程序包。另外还有4个xml显示文件,主要的有client.xml实现操作界面,device.xml显示搜索到的蓝牙列表。其
实一言概之就是,打开蓝牙,启动蓝牙发现,监听蓝牙发现的广播然后连接,之后就是buffer通信,而画图呢就是一
桢一桢的换,最后出现折线图滚动的效果.
代码讲解我全附图片,方便些,要复制把工程拷下来就是了
1、Com.ds.bluetooth包下有5个java文件。最主要的4个的实现功能如下。
(1)MainActivity.java是应用打开后的第一个activity,主要功能是点击相应按键打开客户端界面,存在的意义是客户
端的重启。转到客户端界面的代码如下:
(2)ClientAvtivity.java是客户端界面的activity,主要功能是实现搜索、画图、命令发送的和数据接收的显示。
1、点击“开始搜索”键执行以下代码。
转到DeviceListActivity.java进行蓝牙设备的搜索和显示。
2、 点击“断开”键,执行以下代码,关闭蓝牙套接字连接。
3、点击“画图”键,执行以下代码,清理掉坐标轴上的折线图,x轴时间清0。
4、 广播接收的各类响应代码如下,实现对其他java文件广播事件的处理,其中包括对数据的接收。
5、数据的发送,通过EditView显示自己的发送数据,通过进行发送隐式intent让相应广播器接收处理
6、对选择设备的响应接收,创建蓝牙设备列表的activity时是用startActivityForResult()方法,所以可通过onAcitvityResult方法来接收返回的数据,即选择的蓝牙设备名和地址。
折线图的实现,通过重写的View文件,在已画好的坐标轴上描点连线。
通过保存前一帧图的后7个点的纵坐标数据,实现折线图的左移,且横坐标的时间显示也逐渐增加。
(3)DeviceListActivity.java,实现的功能是显示搜索到的蓝牙设备。
注册广播接收,并建立ListView来显示蓝牙设备
广播接收处理,处理找到设备和蓝牙搜索结束的广播
处理蓝牙设备选择的触屏选择
(4)MychartView.java主要实现画图界面的每一帧的构造,包括的坐标图和折线图。实现的主要方法是利用canvas画布类。
画线函数,利用它画出坐标图,画出折线连接数据点。
坐标图相应的画笔设置
画出数据点,并实现数据点的向右移动。
2、com.ds.bluetoothUtil包下有5个java文件,下面介绍主要的3个java文件。
(1)BluetoothClientService.java主要实现客户端界面后台的各项功能,包括数据发送和接收,蓝牙设备的查找,并
注册相应的广播接收来响应相应的信息,又通过发送广播将信息传输出去。
打开蓝牙适配器,开始搜索
发现蓝牙设备后,发送广播告知DeviceListActivity.java。
广播接收器的注册,从中可以看到这个service具体处理的广播信号
接收数据的处理,直接将byte型数据无符号十进制显示。
调用通信进程发送数据
(2)BluetoothClientConnThread.java建立一个蓝牙设备连接进程,主要实现蓝牙设备的连接,建立通信信道。
(3)BluetoothCommunThread.java是通信进程,用于具体数据的接收和发送
实现数据的接收
实现数据的发送
好了,基本就是这么多了,大家如果在工程里看不明白就到这里来吧,都怪我不好,不是很喜欢写注释。。。我以后会改正的。。这段时间可能更新的都是android,因为马上java要考试了,借整理以前写的android来复习一下java,有什么请留言吧,哥哥姐姐给点鼓励嘛。。。
相关文章推荐
- 无线通信 - 由于Android应用开发蓝牙〜SPP
- Android应用开发笔记(11):Android上的蓝牙通信功能的开发:BluetoothChat例程分析
- Android 蓝牙通信的开发与应用
- Android Service和Activity基于串口蓝牙模块的双向通信
- Android上的蓝牙通信功能的开发:BluetoothChat例程分析
- Android蓝牙CS通信机制的深入挖掘与使用
- Android中实现native服务利用binder与应用通信
- 实现Android和PC之间的蓝牙通信
- Android手机蓝牙与单片机蓝牙串通信开发经验总结
- Android蓝牙通信功能开发
- Android上的蓝牙通信功能的开发:BluetoothChat例程分析
- Android应用开发教程:两个运行的Activity之间的通信
- Android 2.0上使用蓝牙通信代码片断(服务端、客户端、数据传输)
- android手机通过串口蓝牙透传模块与AVR单片机通信实例。。。蓝牙服务程序案例
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
- Android分享中, 过滤指定的应用,已经过滤蓝牙, 并且对不同的分享方式发送不同的内容?
- Android提高第十二篇之蓝牙传感应用
- Android提高第十二篇之蓝牙传感应用
- Android应用与framework的socket通信实例
- Android蓝牙通信 .[转]