【Android论文栏目提醒】:网学会员--在 Android论文编辑为广大网友搜集整理了:基于WiFi的Android移动设备语音通信系统的设计开发 - 期刊论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
第 29 卷第 11 期 计算机应用与软件 Vol. 29 No. 11 2012 年 11 月 Computer Applications and Software Nov. 2012 基于 WiFi 的
Android 移动设备语音通信系统的设计开发 1 2 1 徐 虎 彭正涛 赵俊逸 1 ( 华东师范大学计算中心 上海 200241) 2 ( 武汉科技大学信息科学与工程学院 湖北 武汉 430000)摘 要 鉴于 WiFi 信号的覆盖范围的日益扩大和智能终端设备的普遍应用, 设计开发一种应用于
Android 移动设备的无线语音通信系统。
语音信号通过 WiFi 无线网络传输。
接入无线局域网内的
Android 系统终端用户可通过 WiFi 无线网络相互之间进行免费的全双工语音通话,也可以通过服务器上的 VOIP 接口发起和接收远程呼叫。
同时实现了服务器对终端设备的控制和管理。
该系统获得良好的通话质量,并具有较强的可扩展性。
关键词
Android WiFi VOIP 无线语音通信中图分类号 TP311 文献标识码 ADOI: 10. 3969 / j. issn. 1000-386x. 2012. 11. 058 DESIGN AND DEVELOPMENT OF AUDIO COMMUNICATION SYSTEM IN
ANDROID MOBILE DEVICES USING WIFI Xu Hu1 Peng Zhengtao2 Zhao Junyi1 1 ( Compute Centre,East China Normal University,Shanghai 200241,China) 2 ( College of Information Science and Engineering,Wuhan University of Science and Technology,Wuhan 430000,Hubei,China)Abstract we In view of increasing expansion of area the WiFi signal covers and pervasive use of smart terminal devices, design anddevelop a wireless audio communication system using in
Android mobile devices. The audio signals are transmitted though WiFi wirelessnetwork. Users with
Android system devices can make free full-duplex voice calls to each other through WiFi network when accessing toWLAN,and can also initiate and receive remote calls though a VOIP interface on the server,and simultaneously the control and managementof the server on terminal devices are realised as well. The system is good in call quality and has quite high scalability.Keywords
Android WiFi VOIP Wireless audio communication 线接入。
1997 年 IEEE 发布了 802. 11 第一个版本,随后又增加0 引 言 了 802. 11a 和 802. 11b。
其中 802. 11b 定义了一个在 2. 4GHz 的 ISM 频段上数据传输速率可达 11Mbps 的物理层,得到广泛应 网络通信技术的快速发展和应用正改变着人们的通信和交 用。
1999 年工业界成立了 WiFi 联盟,致力于解决符合 802. 11流方式,其中 VoIP 技术使用户能够通过互联网以低廉的费用实 标准的产品的生产和设备兼容性问题。
WiFi 具有无需布线、较现语音甚至视频通信而受到人们的青睐,因此得到广泛的研究 长距离工作、高速无线传输、与有线网络无缝融合、支持无线漫和应用。
随着 WiFi 无线网络信号覆盖范围的逐渐扩大以及支 游等特点,得到广泛应用。
WiFi 功能模块也越来越多地集成在持 WiFi 的智能手机、平板电脑等手持终端设备的大量增加,利 智能手机中。
目前广泛使用的
Android、iPhone 智能手机中一般用现有的无线网络进行语音通信将会成为更加廉价和便利的方 都提供了 WiFi 功能模块。
式。
市场上已出现 WiFi 手机实现上述应用,但功能较单一,使用不便,还要增加额外开支。
VoIP 技术在国内应用还不是十分 2
Android 操作系统简介广泛,特别是普通的智能手机上基于 WiFi 的语音通信系统还有待进一步研发和推广应用。
本系统基于广泛使用的
Android 系
Android 系统是 Google 公司的基于 Linux 的开源操作系统,统平台设计开发,使用户可以直接在
Android 操作系统的手机 主要应用于智能手机和平板电脑等设备中,是目前使用最广泛或其他智能设备上实现免费的相互语音通信。
的手机操作系统之一。
Android 操作系统自顶向下分成 4 个层 次,即应用层、应用框架层、组件库层和虚拟机、Linux 内核层。
1 WiFi 技术的发展和应用 〔1〕 其架构如图 1 所示 。
802. 11 协议是由美国电子和电器工程师协会( IEEE) 制定 收稿日期: 2012 - 02 - 26。
徐虎,硕士生,主研领域: 嵌入式系统应的一个无线局域网标准,主要用于解决局域网中用户终端的无 用技术,物联网技术。
彭正涛,硕士生。
赵俊逸,高工。
226 计算机应用与软件 2012 年 声音信号进行采样和编码等处理后发送出去,经服务器传送给 另一个终端设备。
3. 2 系统原理和设计 用户终端应用程序中设置服务器的 IP 地址,终端设备首先 根据该 IP 地址登录服务器。
服务器服务器接收到终端设备的 连接请求后, 如 获取与其建立连接的终端设备的信息, IP 地址、 MAC 地址、 将 设备状态等, MAC 地址进行哈希映射后得到各终 端的 ID 用来标识各个终端设备,并把这些信息存放在数据库 图1
Android 系统架构〔1〕 中。
终端设备和服务器建立连接后,将从服务器的数据库中得
Android 系统中的 WiFi 模块相关 API 见表 1。
到所有可建立连接的终端的 ID。
用户就可以向设备列表中的 表1
android. net. WiFi 的主要类 / 接口说明〔2〕 任一设备发起呼叫了。
类或接口 说明 根据呼叫发起方不同,将呼叫分为由本地( 局域网内部) 终 WiFiManager 提供了管理所有 WiFi 连接的 API 端发起的呼叫和接收到的来自 VoIP 软件的远程呼叫两类。
其 WiFiInfo 描述了 WiFi 连接状态 中由终端发起的呼叫根据呼叫目的的不同又分为本地呼叫和远 WiFiConfiguration 代表一个已配置的 WiFi 网络 程呼叫。
本地呼叫即接收端为局域网内部终端设备,数据流由 ScanResult 描述探测到的存取点的信息 服务器直接转发。
而如果终端发起的是远程呼叫,则服务器要 通过 VoIP 接口和远程语音服务器之间进行传输和接收数据。
获取 WiFi 网络状态前,必须在 AndroidManifest. xml 文件中添加如下访问许可。
本系统中 VoIP 接口基于常用的 VoIP 软件 Skpye 开发,实现本 < uses-permission
android: name 〃
android. permission. ACCESS_WIFI 地数据流和 VoIP 软件的交互。
_STATEk〃 / > 由终端发起的呼叫建立的过程如下: ( 1) 终端向服务器发送 New Call 命令以及被呼叫方地址及3 系统设计 ID,服务器监听到指令,执行相关操作。
( 2) 如果被呼叫方为本局域网内用户,服务器向目的终端3. 1 系统架构 发送呼叫命令,建立通信链路,直接将接收到的语音数据向目的 本系统主要功能是实现基于 WiFi 的终端设备之间的语音 终端进行转发。
通话。
系 统 由 语 音 服 务 器 ( 以 下 简 称 服 务 器 ) 、 线 接 入 点 无 ( 3) 如果被呼叫方为远程地址,则调用 VoIP 接口,将语音( AP) 、终端设备( 手机、平板电脑等) 以及 PC、路由器组成。
数据通过 VoIP 软件进行传输。
系统的网络拓扑结构如图 2 所示。
( 4) 通话接束时,服务器将从一端接收到的 End Call( 结束 通话) 命令发送至另一终端,撤销通话。
此外,服务器还可实现 对其他通话状态的控制,如暂停通话、转移通话等。
当服务器接收到的是来自远程终端或 VoIP 软件的呼叫时, 服务器从本地的 VoIP 接口中获取到数据流,向注册到服务器的 某一本地移动终端进行转发。
目的终端的选择由各终端设备的 网络信号强弱、优先级设置等因素综合计算得到的权值决定。
设备间传输的数据除了音频数据之外,还要包括控制信息, 以实现服务器和终端设备的相互控制、信息传递。
因此将数据 图2 系统拓扑结构图 分为命令和音频数据两部分。
服务器主要承担终端设备管理和数据转发功能。
能够响应 服务器发送给终端设备的命令主要有: ChangeStatus( 更改并处理终端请求,管理终端状态,转发语音数据流。
服务器接收 状态) 、ChangePriority ( 更 改 优 先 级 ) 、NewTerminal ( 新 终 端 加到请求后进行语音通道的建立,双向转发语音数据,实现一个终 入) 、Call( 接收 呼 叫) 等。
终 端 发 送 给 服 务 器 的 命 令 主 要 有:端到另一个终端的语音通信。
服务器的主要功能模块包括: 网络传输、账户管理、数据库管理、消息处理、终端设备管理、VoIP Register( 注册) 、Login ( 登 录) 、GetTerminals ( 获 取 终 端 设 备 列接口等。
表) 、ChangeStatus( 更改自身状态) 、ChangePriority( 更改自身优 本系统中的终端设备指接入网络的装有
Android 操作系统 先级) 、New Call( 呼叫请求) 等。
的智能手机、平板电脑等移动设备( 当然以后可能扩展到其他 服务器和终端设备接收到命令后,根据不同的命令执行相操作系统) 。
终端设备通过 WiFi 接入网络。
它们相互之间可进 应操作。
终端程序中通过后台运行一个 Service 来监听接受到行呼叫,实现语音通话。
终端设备上需要安装相应的应用软件。
的数据,既不影响用户使用终端设备上的其他软件,又能实时地终端程序的主要功能有: 建立与服务器的连接并得到可呼叫设 接收来自服务器的信息。
备列表,向服务器发送发起呼叫、登录、状态变更、设置优先级、 系统开发中采用多线程机制,采样、播放、发送、接收等操作好友管理等请求,监听并执行服务器发送的反馈或命令,处理接 分别由单独的线程完成,使各项功能相互独立、并发执行。
系统收到的音频数据,经过解码实时播放给用户,同时对用户发出的 的流程图如图 3 和图 4 所示。
第 11 期 徐虎等: 基于 WiFi 的
Android 移动设备语音通信系统的设计开发 227 据和隐私需要保护,因此对系统的安全性提出较高要求和挑战。
本系统中通过以下途径提高安全性: ( 1) 为无线网络设置安全机制。
WiFi 设置为 WPA2- PSK 加密方式( 即预共享密钥 Wi- 保护访问, Fi 版本 2) 。
加密类型 为 AES, Advanced Encryption System( 高级加密系统) , 即 其利用 对称 128 位块数据加密。
目前该加密方式可有效防止破解和攻 击。
( 2) 采用移动终端和服务器双向认证机制。
移动终端登录 服务器时,需要提供用户名和密码,以供服务器验证。
服务器端 认通过后,也会将自身信息发送给终端设备,终端设备对其验 证。
只有双方认证通过后,才能进入并使用系统功能。
有效防 止通过伪装方式入侵系统。
( 3) 采用一定的加密算法对传输数据进行加密。
4 主要模块的实现 图3 客户端程序流程图 4. 1 开发环境 系统以 Java 作为主要编程语言, 开发环境如下: ( 1 ) 服 务 器 端 程 序 的 开 发 环 境: Eclipse Visual Studio 2010。
( 2) 终端应用程序的开发环境: Eclipse ADT 插件。
Eclipse 是开发
Android 应用程序的首选集成开发环境。
安 装
Android 开发环境,首先需要安装 Java 开发工具包( JDK) ,然 后安装集成开发环境 Eclipse, 最后安装
Android SDK 和 Eclipse 的 ADT 插件。
本系统在
Android 2. 3 版本上开发和测试。
在 Eclipse 上创建一个
Android Project,每个
Android 程序必 须在根目录下包含一个 AndroidManifest. xml 文件。
AndroidMa- nifest. xml 是 .