【Android论文栏目提醒】:本文主要为网学会员提供“基于Android健康服务终端蓝牙传输软件的设计 - 期刊论文”,希望对需要基于Android健康服务终端蓝牙传输软件的设计 - 期刊论文网友有所帮助,学习一下!
2012 年第 25 卷第 5 期 图像编码与软件Electronic Sci. & Tech. / May. 15,2012 基于
Android 健康服务终端蓝牙传输软件的设计 李黎国,张 辉,程 号 ( 西安电子科技大学 电子工程学院,陕西 西安 710071) 摘 要 在一款基于
Android 操作系统的健康服务终端设计基础上,介绍了一种基于
Android 的蓝牙应用程序的设 计方法。
通过分 析 蓝 牙 及
Android 操 作 系 统,重 点 研 究 了 在
Android 操 作 系 统 对 蓝 牙 的 支 持,最 后 设 计 出 了 基 于
Android操作系统的蓝牙应用软件,运行测试,符合设计要求,具有一定应用性。
关键词 蓝牙;
Android; 健康服务终端 中图分类号 TN926. 22 文献标识码 A 文章编号 1007 - 7820( 2012) 05 - 115 - 04 The Design and Implementation of Bluetooth Software Based on
Android Health Service Terminal LI Liguo,ZHANG Hui,CHENG Hao ( School of Electronic Engineering,Xidian University,Xian 710071,China) Abstract Based on the
Android operating system in a health service terminal,this paper introduces a Blue- tooth application programming method. On the basis of analyzing the Bluetooth and the
Android operating system, we focus our research on operating system support of Bluetooth. Then,we design the Bluetooth application software based on the
Android operating system. Practical tests show that the application software meets the design require- ment and is of practical value. Keywords bluetooth;
Android; health service terminal 随着物联网技术的不断推动,计算机、无线通信、 1 蓝牙技术消费类电子呈现快速发展。
体现物联网应用的热点健康监护领域,各种传感器及无线的应用, 更能体现出物 蓝牙技术联盟 ( Bluetooth SIG) 成立于 1998 年,是 〔1〕联网技术的优势 。
作为当今市场支持范围最广泛、 由爱立信、英特尔、联想、微软、摩托罗拉、诺基亚及东功能最丰富且安全的蓝牙技术与物联网技术 。
首先, 芝等公司发起成立。
总部设在美国柯克兰州, 从建立蓝牙技术包含了传感器技术、识别技术、移动通信技术 之初到现在共有 13 528 个全球成员,这些成员之间进等,这些技术与物联网密切相关。
其次, 蓝牙的低功耗 , 行广泛的合作 为蓝牙技术的发展提供指导意见, 推动被看作消费电子产品、体育、健康护理、汽车、自动化等 蓝牙的发展。
同时在香港、北京、台北和日本东京、韩领域一大技术突破, 也是物联网技术的重要组成部分。
国首尔和瑞典的马尔摩都有办事机构 。
尤其是蓝牙 4. 0 标准拥有着低耗能、传输范围更大、支 蓝牙无线通信技术工作在工业、科学以及医学上持拓扑结构等特性。
蓝牙技术的不断进步将为物联网 公用的 2. 4 GHz ISM 公用频段,这一频段全球通用且的发展提供动力。
而
Android 操作系统在两年多的时 无需授权。
蓝牙系统 〔2〕 采用全双工分时传输信息技间里,飞速发展,成功超越了塞班、IOS、微软等操作系 术,信息以分组结构的方式进行数据交换。
在传输过统,足以证明其发展潜力及 OS 未来的发展趋势。
尤 程中,各信息分组用不同的跳频算法实现信息传输 。
其是
Android 的开放性, 大大降低了产品的成本, 0 3. “跳频”技术是把频带分成若干个跳频信道,在一次连版本 及 4. 0 版 本 对 于 平 板 电 脑 的 支 持, 足 以 使 得 这 , 接中 无线电收发器按一定的码序列不断地从一个信
Android 在 OS 市场占有不败之地。
本文结合两者的优 “ 到另一个信道, 道 跳” 只有收发双方按这个规律进行势,详细分析了蓝牙技术和
Android 操作系统,并研究 , 通信 而其他的干扰不可能按同样的规律进行干扰 ; 跳了在
Android 下如何对蓝牙进行应用,最后设计出一 频的瞬时带宽很窄,这就使得来自同样工作在2. 4 GHz款基于
Android 健康服务终端的蓝牙传输软件。
ISM 频段的家用电器,如微波炉等带来干扰的可能性 变得很小。
与其他工作在相同频段的无线系统相比,收稿日期: 2011-11-22作者简 介: 李 黎 国 ( 1985—) ,男,硕 士 研 究 生。
研 究 方 向: 蓝牙跳频每秒可以达到 1 600 次,速度更快,而且数据电子通信专业。
, 包更短 从而使蓝牙比其他系统更稳定 。
此外,蓝牙通 www. dianzikeji. org 115 图像编码与软件 等: 李黎国, 基于
Android 健康服务终端蓝牙传输软件的设计信还具有以下优点: ( 1) 消耗功率极低。
( 2) 辐射小, 程序。
开发者可以自由地利用设备硬件优势、访问位对人体安全影响不大。
( 3) 成本低廉, 容易实现。
置信息 运行后台服务 设置闹钟 向状态栏添加通知 、 、 、 目前,蓝牙技术已经得到普遍的应用, 全球大约 80 等等,很多很多。
以上的手机使用了蓝牙技术。
蓝牙技术的普及为物联网 应用层 ( Applications) 。
Android 装配一个核心应的发展提供了一种技术选择, 具有极大的发展空间。
用程序集合, 包括电子邮件客户端、 SMS 程序、日历、地 图、浏览器、联系人和其他设置。
所有应用程序都是用2
Android 操作系统 Java 编程语言写的。
Android 是专为移动终端打造的开放、完整的移动
Android 作为第一款完整的、开放的、免费的平台,平台,它是一款基于 Linux 内核的开源操作系统,由操 在仅仅两年多的时间, 从最初的 1. 0 版本到现在主流作系统、中间件、用户界面和应用程序组成。
由 Google 的 2. 3 版本,以至刚刚发布的 4. 0 版本,每个版本的发及其开放手机联盟共同研发,并在 2008 年 9 月份推出 布对于 Google 来说都是一个质的飞跃,根据市研机构了
Android 第一版。
Gartner 在 2011 年第二季度的 OS 份额调查数据显示,
Android 操作系统架构〔3〕从下到上有 5 部分组成:
Android 市场占有率达 43. 4 ,成为最大的智能手机Linux 内核、 库 应用程序框架、
Android Runtime、 、 应用 系统,随着
Android 手机的普及,
Android 应用的需求必程序。
Android 系统架构如图 1 所示。
定会越来越大,这将是一个有着巨大潜力的市场 。
3
Android 操作系统下蓝牙的研究
Android 平台支持蓝牙协议栈〔4〕,因此支持在两个 蓝牙设备之间进行数据的传输。
Android 应用框架层 提供了允许蓝牙进行连接的 API,通过这些 API 可以 实现通过蓝牙的应用程序是无线连接, 建立端到端的 连接模式。
使用蓝牙 API,可以实现应用的如下功能: ( 1) 寻找其他蓝牙设备。
( 2) 查询与本地蓝牙适配器配对的设备 。
图1
Android 系统架构 ( 3) 建立 RFCOMM 信道。
( 4) 在两个不同的蓝牙设备之间传输数据 。
Linux 内 核 ( Linux Kernel ) 。
Android 基 于 Linux ( 5) 管理多个蓝牙连接。
2. 6 提供核心系统服务, 这是
Android 平台开放的基 下面详细介绍几个重要的 API:础, 它提供了例如安全机制、内存管理、进程管理、网络 BluetoothAdapter: 代表本地的蓝牙适配器,是所有堆栈、驱动模型等内容。
Linux Kernel 也作为硬件和软 蓝牙交互的的入口点。
利用它可以发现其他蓝牙设件之间的抽象层,它隐藏具体硬件细节而为上层提供 备,查询已经绑定的设备,使用已知的 MAC 地址实例统一的服务,使得应用开发人员无需关心硬件细节 。
化一个蓝牙设备和建立一个 BluetoothServerSocket 来
Android Runtime。
Android 包含一个核心库 的 集 监听来自其他设备的连接。
合, 提供大部分在 Java 编程语言核心类库中可用的功 BluetoothDevice 类: 代表远端的蓝牙设备,使用它能。
每一个
Android 应用程序是 Dalvik 虚拟机中的实 请求远端蓝牙设备连接或获取远端蓝牙设备的名称 、例, 运行在他们自己的进程中。
Dalvik 被设计成在一个 地址、种类和绑定状态。
设备可以高效地运行多个虚拟机。
Dalvik VM 虚拟机 Bluetoothsocket 类: 代表蓝牙套接字的接口,它是可执行文件格式是 . dex, 格式是专为 Dalvik 设计的 dex 应用程序通过输入、输出流与其他蓝牙设备通信的连一种压缩格式, 适合内存和处理器速度有限的系统。
接点。
Libraries。
Android 包含一个 C / C 库的集合,这 Blueboothserversocket 类: 代表打开服务连接来监些库供
Android 系统的不同组件使用。
这些功能通过 听可能到来的连接请求, 为连接两个蓝牙设备必须有
Android 的应用程序框架 ( Application Framework) 暴露 一个设备作为服务器打开一个服务套接字 。
当远端设给开发者 备发起连接请求,并且已经连接到了的时候, Blueboo- Application Framework。
通 过 提 供 开 放 的 开 发 平 thserversocket 类将会返回一个 bluetoothsocket。
台,
Android 使开发者能够编制极其丰富和新颖的应用 Bluetoothclass 类: 描述了蓝牙设备的一般特点和 116 www. dianzikeji. org李黎国, 基于
Android 健康服务终端蓝牙传输软件的设计 等: 图像编码与软件能力。
它的只读属性集定义了设备的主、从设备类和 来建立连接。
由于 accept( ) 方法是一种阻塞调用,因一些相关服务 。
此不应该放在主 Acitvity 里,要新建一个线程来管理 。
4 蓝牙传输软件的实现4. 1 软件功能描述 蓝牙传输软件主要实现对各个模块的管理, 模块数据的接收、分析、存储、发送及复杂的人机交互等任务。
为能够合理分配硬件资源、提供更人性化的界面以及使用通用的硬件设备,在软件设计时,健康服务终端采用
Android 操作系统为用户界面。
4. 2 图形用户界面设计 程序界面主要包括 3 个与用户进行交互的Activity:( 1) 模块显示。
( 2) 血氧历史记录。
( 3) 血压历史记录。
为减少应用所需的内存量, 项目没有添加任何图片及声效。
界面简单直观, 便于操作。
首先将各模块列表作为应用程序的主界面。
程序运行的最开始加载此项。
当应用程序启动后,第一个显示出各个模块的列表和当前测试数据。
界面设计通过 XML 的资源文件 图2 蓝牙开发流程进行定义。
历史记录模块采用了专为
Android 系统设计的图 try { 〔5形库 AChartEngine , 〕 可以用于绘制多种图表。
socket mmServerSocket. accept( ) ; 历史记录的显示主要通过不同的线条颜色,点的 } catch ( IOException e) {形状来区分显示的不同内容。
, , Log. e( TAG “accept( ) failed” e) ;4. 3 软件功能设计 break; } 软件功能设计包括蓝牙管理,连接建立,数据传输 ……及数据处理。
而客户端则采用 connect( ) 方法来建立连接。
同 蓝牙部分设计 样也是一种阻塞调用,同样需要新建一个线程来管理。
在
Android 操 作 系 统 下, 供 了 对 蓝 牙 管 理 的 提 try {API,蓝牙开发流程如图 2 所示。
首先要判断设备是否 mmSocket. connect( ) ;支持蓝牙,并且保证蓝牙可用。
} catch ( IOException e) { mBluetoothAdapter BluetoothAdapter. getDefault- connectionFailed( ) ;Adapter( ) ; try { 如果蓝牙可用, mBluetoothAdapter 不为空, 则 然后 mmSocket. close( ) ;判断蓝牙是否打开,若未打开,则提示用户打开蓝牙。
, } catch ( IOException e2) { Log. e( TAG “un- if ( ! mBluetoothAdapter. isEnabled( ) ) { , able to close( ) socket during connection failure” e2) ; } Intent enableIntent new Intent ( BluetoothAdapt- BluetoothChatService. this. start( ) ;er. ACTION_REQUEST_ENABLE) ; return; } startActivityForResult ( enableIntent,REQUEST _ ……ENABLE_BT) ; } 当设 备 连 接 上 以 后, 个 设 备 都 拥 有 各 自 的 每 到此,蓝牙设备已经打开。
Bluetoothsocket。
现在就可以实现设备之间数据共享 在
Android 应用程序开发中,若要建立两个蓝牙设 了。
同样读取和写操作都是阻塞调用,需要建立一个备的连接,必须实现客户端和服务器端代码。
一个用 专用的线程来管理。
来开启服务监听,一个发送连接请求。
当它们都拥有 try {一个蓝牙套接字在同一 RFECOMM 信道上时, 说明它 tmpIn socket. getInputStream( ) ; 。
服务器端采用 accept( ) 方法 tmpOut socket. getOutputStream( ) ;们之间已经建立好连接 www. dianzikeji. org 117 图像编码与软件 等: 李黎国, 基于
Android 健康服务终端蓝牙传输软件的设计 } catch ( IOException e) { , , Log. e( TAG “temp sockets not created” e) ; } …… 在两个 Activity 之间, 可以用 Handler 传递信息,使用 getInputStream( ) 获得由传感器传来的数据并显示在主界面中。
case MESSAGE_READ: byte〔 〕 〕readBuf ( byte〔 ) msg. obj; String readMessage new String ( readBuf,0,msg. arg1) ; myoPresentValue. setText( readMessage ” ) ; ” break; ……4. 4 蓝牙传输软件的运行与测试 由于蓝牙不能在虚拟机中测试, 所以将程序打包 ,后 安装到支持蓝牙的
Android 手机中, 然后点击血压按 , ,钮 将与血压模块建立连接 同时实时显示当前血压值。
点击历史记录按钮,则会显示一周内测试结果, 并以图 图4 历史记录界面片形式显示出来。
程序运行结果如.