基于Android的WiFi对讲机项目简介

作者:王飞

一、概况

项目名称 基于Android的WiF对讲机
行业 手机应用
架构类型 Android应用
开发技术 1、可采用的技术: Android、Java 
2、公用技术:Java、Android SDK、XML
3、数据库技术: SQLite数据库
4、Webserver
规模 系统总体规模1.9人月,可根据选用的系统功能模块,计算裁剪后的系统规模。

二、项目概述

对讲机:用于通讯的设备。对讲机不同于移动电话,它不用根据通话时间计费。比较移动电话和双向对讲机的成本,用户会发现对讲机更经济实用。手持对讲机是一种体积小、重量轻、功率小的无线对讲机,适合于手持或袋装,便于个人随身携带,能在行进中进行通信联系。当你们在没有对讲机而你又需和摸个人进行通话怎么办。你肯定会想我有手机打个电话给他就可以了。这是解决了问题但是有产生了花费。能不能不花钱呢?答案是肯定的,只要你使用我们的WiFi对讲机就可以用手机实现免费的对话。只要你的手机可以使用WiFi你就可以在局域网内像使用对讲机一样和同一个局域网内的所有成员进行对话和沟通。

本文主要描述在Android系统下的智能手机应用,基于Android SDK在Android平台的智能手机上开发的手机网络应用。目的是为了清晰地描述用户使用本软件必须要完成的任务和定义开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务。

图1 项目环境图

三、总体业务流程介绍

图2 项目业务流程图

四、系统功能

4.1 系统功能结构

本项目主要功能包括PC终端和移动终端,通过PC终端与移动终端屏幕共享来达到语音对讲效果,这样使得在一定WiFi范围内的两终端可以达到随时语音交互效果。功能结构图如下所示:

图3 系统功能结构图——客户端 图4 系统功能结构图——服务端

4.2客户端功能需求

4.2.1 功能需求概述

该系统的功能主要体现在无线热点搜寻、无线网络选择、频道选择,用户连接设置、无线呼叫等模块。

  • 无线热点搜寻:

本模块主要是实现了手机客户端对WiFi设备的搜索功能一边客户端可以根据自己的需求来连接不同的WiFi设备。

无线网络选择:

本模块实现了无线设备的选择及连接功能。用户可以将搜索到的WiFi设备进行列表,用户从列表中选择相应的设备并连接实现无线呼叫。

频道选择:

用户获取服务端的所有频道列表,用户可根据需要来选择频道实现无线通讯。

用户设置:

客户端通过建立无线连接选择频道然后选择通讯模式及传输模式来实现两个客户端的呼叫或是一对多客户端的群体呼叫功能。

无线呼叫:

本模块负责客户端之间的通讯机呼叫接受转化服务。是用户可以方便的进行语言信息的传递。

4.2.2 无线热点搜寻模块

软件使用者打开软件会搜索当前范围内所有的WiFi设备并提供相关列表信息及信号强度。

4.2.3 无线网络选择模块

用户可以通过搜寻到的WiFi设备列表显示的相关信息对其进行适当的选择。并和该设备进行连结。

4.2.4 频道选择模块

当用户连接到设备后会显示服务断提高的频道相关的列表。用户可更具需要选择频道加入和频道中其他用户进行连接。

4.2.5 用户连接设置模块

4.2.5.1 用户选择

选择需要呼叫的用户并建立WiFi连接实现语言呼叫。

  • 传输模式设置

本系统提供两种连接模式供使用者选择,一种是服务器转发另一种是点对点互传。

服务器转发是将所有的语言信息通过服务器广播的方式发送到连接用户。

点对点互传是直接通过WiFi在两个手机建立连接通道直接传输语言信息。

用户连接设置

选中要呼叫的用户并建立连接。

4.2.5.2 频道选择

客户端可通过频道功能来实现群体呼叫的功能。

  • 传输模式设置

由于要实现全体广播的效果必须使用服务器广播来实现,在这就必须将传输模式设定为服务器转发模式。

频道连接设置

选择要广播的频道并建立客户端和服务器的连接实现语言广播。

4.2.6 无线呼叫模块

实现语言的发生。按下呼叫键开始语言信息呼出,此时无法接收任何信息。弹起时只能接收别人传的过来的语言信息无法发送。

4.3服务端功能需求

该系统的服务端主要实现频道的管理及语言信息的转发和广播功能。功能主要体现在频道管理和转发服务两大模块传输。

  • 频道管理:

本模块实现了服务端对用户端频道的管理。包括了频道的添加、设置、删除及频道的连接数设置等。

转发服务:

本模块主要是负责服务端对客户端传输模式的控制。包括了文本协议传输、音频文件传输及数码流传输等传输服务的实现。

4.3.1 频道管理模块

本模块主要是对频道的控制管理,方便客户端根据不同的频道来实现不同的情况下的语言播报。

4.3.2 文件转发模块

4.3.2.1文本协议服务

将呼入的音频数据转换为文本文件通过服务器转发,在客户端再讲文本文件使用语言播报工具转换成语音。

4.3.2.2 音频文件转发

将呼出信息存储问录音文件并发生到客户端,有客户端在后台将录音文件播报出来。

4.3.2.3 数据流转发

将呼出音频直接转换成数据流以以数据流的形式传送到客户端,在客户端将数据流还原成音频直接播报。

4.4 非功能需求

  • 可用性:系统具备傻瓜式操作特点,好记易学、实用高效、令人满意;
  • 可靠性:系统应经过完善的设计和充分的测试运行,具备在较长时间内连续无故障的运行能力;
  • 健壮性:系统应具备强大的容错、数据恢复与稳定运行的能力;
  • 性能:系统在响应时间、数据吞吐量和持续高速性等多方面提供较高性能的数据处理和查询服务。
  • 安全性:系统应提供全面、有效的系统安全机制,能有效防止病毒感染、非法用户或恶意程序对应用系统或数据的入侵;
  • 扩展性:系统应易于扩展和升级,能够根据具体需求快速、方便地定制、扩展原系统的功能,以更好地满足档案管理的新增和变更的需求;
  • 开放性:系统应具备开放的标准化体系结构,可方便地与其它业务系统衔接,实现与其它业务系统间的无缝集成;
  • 先进性:系统应采用业界先进、主流的档案数据管理、网络管理及信息安全技术,具备较强的可用性、可靠性、健壮性、性能、安全性、扩展性和开放性。

4.5 系统逻辑结构

图5 系统逻辑结构图

五、关键技术与难点

  • 技术知识:
Java、Android编程知识
Android SDK应用
数据库服务器 SQLite
开发工具 MyEclipse、SVN、VISIO
WebServer 、Http传输协议、音频处理、IO流处理
技术风险较高:
Java、Android、SQLite前期需在基础课程中详细讲解;
Android SDK技术、SQLite数据库处理存在一定难度,将会影响整体实施过程。
WiFi热点搜寻、WebServer、Http传输协议

六、行业知识

对讲机:用于通讯的设备。对讲机不同于移动电话,它不用根据通话时间计费。比较移动电话和双向对讲机的成本,用户会发现对讲机更经济实用。手持对讲机是一种体积小、重量轻、功率小的无线对讲机,适合于手持或袋装,便于个人随身携带,能在行进中进行通信联系。

WebService是一种基于SOAP协议的远程调用标准。通过WebService可以将不同操作系统平台,不同语言、不同技术整合到一起。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方SDK来调用WebService。PC版本的WebService客户端库非常丰富,例如,Axis2、CXF等,但这些开发包对于Android过于庞大,也未必很容易移植到Android上。因此,这些开发包并不在我们考虑的范围内。适合手机的WebService客户端SDK也有一些。本项目建议使用了比较常用的KSOAP2。

本系统是将传统的对讲机功能通过网络服务及WiFi移植到手机平台项目新颖但是难度较大。针对于在实验室进行android应用或游戏开发,常常会涉及到移动设备的常用功能,如:蓝牙、WI-FI网络、GPS等,在正常实验室无真机调试环境下是无法实现这些需要外围设置来支持的功能,简单来说也就是通过android模拟器开发的应用和游戏只能是单机项目,如果需要开发蓝牙、WI-FI网络、GPS等需外围设备支持的功能,必须在实验室提供真机支持,同时真机也支持USB在线调试,可以直接在真机上进行应用或游戏的直接开发和调试,因为真机上这些外围设备都物理存在并提供相应功能的使用,所以在真机上是可以完成所有android的开发。

七、系统工作量估计

本项目总的实施工作量为40人天(1.9人月),具体工作量分析如下表所示:

注:以上工作量估算是按照人员专业水平至少达到软件工程师水平,并且有1~2年实际开发经验的人员。
主要阶段 工作量(人天)
功能需求 设计 UI+编码+测试 小计
移动设备端 无线热点搜寻 搜寻热点 1 1 2 4
选择无线网络 选择无线网络 1 1 2 4
选择频道 服务端频道列表 1 1 2 4
用户连接设置 用户选择 1 1 2 8
频道选择 1 1 2
无线呼叫 无线呼叫 1 1 2 4
服务端 频道管理 级别管理 1 1 2 4
转发服务 文本协议服务 1 1 2 12
音频文件转发 1 1 2
数据流转发 1 1 2
合计 40人天(1.

更多相关文章

  1. 浅谈android的selector背景选择器
  2. 安装Android(安卓)Studio遇到中文乱码的解决方法
  3. UE4 安卓打包纹理格式选择
  4. Android(安卓)Studio 设置背景色
  5. Android(安卓)系统下模拟触点击的功能与权限
  6. Android(安卓)开发笔记(1)——Android(安卓)SDK下载安装和Androi
  7. 在android studio中导入cocos2dx中的android studio项目
  8. Android(安卓)UI开发第二十五篇——分享一篇自定义的 Action Bar
  9. Android(安卓)之 SQLite简介

随机推荐

  1. 点进垃圾网页后返回按钮失效?谷歌承诺将彻
  2. 全国416个本科专业被撤销,你的专业“出局
  3. B站十门全领域基础实用课程推荐,PS设计司
  4. 宝可梦与Chrome联名,推出官方插件“皮卡丘
  5. 七十万权游粉丝请愿重拍第八季,这个请愿网
  6. C语言10.0
  7. JUC的世界II
  8. 安装Pinpoint实现全链接监控
  9. 这样规范写代码,同事直呼“666”
  10. powershell关于掷骰子问题