基于Android系统的生理数据蓝牙传输技术
本文关键词:基于Android系统的生理数据蓝牙传输技术,,由笔耕文化传播整理发布。
基于Android系统的生理数据蓝牙传输技术
-3802-
中国医学物理学杂志
第29卷第6期
2012年11月
toothAdapter.getRemoteDevice()得到指定地址的BluetoothDevice。该类实际上是一个蓝牙硬件地址簿,其操作都是远程蓝牙硬件地址使用Blue-toothAdaphter来创建一个BluetoothDevice对象。在程序开始时,注册搜索已完成(ACTION_DISCOV-ERY_FINISHED)和发现设备(ACTION_FOUND)两个广播接收器BroadcastReceiver,然后通过线程来控制蓝牙设备的搜索(startDiscovery),当搜索中有触发
图1远程医疗系统
Fig1Telemedicine
system
上面两个接收器事件,就直接传递给接收器进行保存,程序流程如图2。
Android是Google基于Linux平台的开源手机
操作系统,采用软件堆层的架构[3],主要分为四层:
●底层(LinuxKernel)以Linux2.6内核工作为基础,包括内存管理、进程管理和驱动模型等,此层提供了蓝牙驱动。
●系统运行库层(Library),包括C/C++库以及Android运行库。Dalvik不需要很快的CPU计算速率和大量的内存空间,非常适合在移动终端上使用。
●应用框架层(ApplicationFrame),编写核心应用时所使用的API框架。
●应用层(Applications)应用是由Java语言编写的运行在虚拟机上的程序,本文在该层实现生理数据传输的开发。
Android在2.0版本开始支持蓝牙,有关蓝牙的类和接口都位于android.bluetooth包中,具体功能如表1。
表1蓝牙主要功能包(android.bluetooth)
2
搜索设备流程图
Fig2searchingdevicesprogramflowchat
2.2数据传输的实现图
蓝牙之间的数据传输采用基于RFCOMM协议的Socket连接实现。在Android的蓝牙API中Blue-toothServerSocket和BluetoothSocket类可以实现Socket通信。
手机服务器可通过线程使用listenUsingRfcommWithServiceRecord()方法来注册一个具有名称和唯一识别的UUID号BluetoothServerSocket,然后利用BluetoothServerSocket.accept()方法一直监听生理参数检测模块的请求,得到请求后,利用InputStream.re-ad(byte[])方法接收检测模块的生理数据,并对数据做出相应的处理,最终调用BluetoothServerSocket.close()关闭蓝牙服务器,程序流程如图3。
Tab.1BluetoothAPIinAndroid功能包
说明蓝牙适配器(本地)蓝牙服务类
蓝牙设备(远程蓝牙设备)监听蓝牙连接的类蓝牙连接类
BluetoothAdapter
BluetoothClass.ServiceBluetoothDevice
BluetoothServerSocketBluetoothSocket
2实现过程
2.1蓝牙基本操作的实现
本文采用Android2.2版本和Eclipse3.5工具进行开发。在Android系统中要实现蓝牙的功能,要做一些准备工作。首先,须在AndroidManifest.xml中声
明其权限。其次,须先取得蓝牙适配器,本地蓝牙适配器可通过getDefaultAdapter()获得,远程蓝牙适配器需要使用BluetoothDevice类。在取得蓝牙适配器之后,可请求开启蓝牙并开始搜索周围蓝牙设备。
在搜索远程蓝牙设备时,可以先使用Blue-
图3服务器流程图
Fig3theseverprogramflowchat
本文关键词:基于Android系统的生理数据蓝牙传输技术,由笔耕文化传播整理发布。
本文编号:154142
本文链接:https://www.wllwen.com/yixuelunwen/swyx/154142.html