基于安卓移动蓝牙聊天系统技术方案

技术编号:18461031 阅读:1331 留言:0更新日期:2018-07-18 13:37
基于安卓移动蓝牙聊天系统,以及蓝牙作为短距离无线通信技术的流行,通过研究Android应用程序组成和Android中蓝牙的实现,最后设计实现了基于Android平台的蓝牙聊天系统;选择蓝牙作为通信手段避免了网络连接对于网络及信号强度的依赖,以MVC模式架构设计了蓝牙通信的服务器端和客户端,实现好友或陌生之间即时的一对多聊天系统。

Mobile Bluetooth chat system based on Android

Based on the Android mobile Bluetooth chat system and the popularity of Bluetooth as a short distance wireless communication technology, the Bluetooth chat system based on the Android platform is designed and implemented by studying the composition of Android applications and the implementation of Bluetooth in Android. Based on the strength, we design the server and client of Bluetooth communication based on MVC mode, and realize the instant one to many chat system between friends or strangers.

【技术实现步骤摘要】
基于安卓移动蓝牙聊天系统
本专利技术是Android

技术介绍
随着移动通信技术的进步,移动终端在近年中发展迅速,尤其是智能手机平台Android的发布与开源,其发展势头强劲,市场占有率稳步提升,给移动领域注入了新的活力;根据市场研究公司Canalys的调查数据,在Canalys调查的全世界56个国家中,Android在其中35个国家处于领先地位.并占据了全球48%的市场份额。
技术实现思路
Android的蓝牙聊天系统设计:本系统主要用到的Android系统组件为Activity和Service;在Android的设计中,每个Activity都是一个独立的进程,每个Service也是一个独立的进程,而Activity要与Service进行通信,就是跨进程的通信,这时就需要使用Binder机制了;Android对Binder机制进行了抽象,定义了IBinder接口;在上层,其具体实现是由AIDL(AndroidInterfaceDefinitionLanguage,即Android接口描述语言)来完成的;本系统在蓝牙通信服务器端和客户端都使用了MVC模式,采用分层的结构,具体分为表示层、控制层、业务和数据交换层.对应MVC设计模式中的View,Controller和Model;(1)表示层向用户展示模型的状态,在本系统中是以每个Activity的对应的页面、对话框和一些显示控件所展现,一般以layout文件夹下的布局文件承载,它主要用来输入和显示文本消息、打开蓝牙可见性及搜索蓝牙设备;(2)控制层负责表示层和业务层的流程控制,一方面将表示层的调用发到业务层请求处理;另一方面将业务层的处理结果反应到表示层进行界面上的显示;(3)业务和数据交互层,封装了蓝牙数据传输的核心操作,如创建socket创建通道、传输数据、处理输入输出流等;它可以通过控制层被调用,也可以在收到连接请求或文本消息时把结果返回给控制层,进而返回到表示层;整个系统采用了MVC设计模式,对整个代码进行了分层,使程序结构更加清晰、代码更加健壮,提高了模块化程度,各模块职责明确,高效率地处理相应事件。蓝牙聊天系统客户端实现:①在BtClient里,有一个listView和一个输入框,分别用来显示接收到的服务器端发送的消息和输入文本消息向服务器端发送,这是程序的界面构成;②启动程序后,客户端进行初始化操作,包括构造OnMessageReceivedListener,OnConnectionServiceReadyListener;启动ConnectionService;③准备工作完毕后,回调OnConnectionServiceReadyListener,启动ServerListActivity界面,显示搜索到的蓝牙设备,点击服务器端所在设备地址,通过Connection调用ConnectionService的connect函数,来向服务器发起连接请求;④等服务器接受连接请求后,返回BluetoothSocket,把服务器端地址address和这个BluetoothSocket放到HashMap里,用来管理socket;接着启动BtStreamWatcher线程,用来监听这个socket里的输入输出流,把此线程也放到另外一个HashMap里;⑤BtStreamWatcher用来处理输入输出流,在BTClient界面上进行输入的时候,根据服务器地址,从HashMap里取出对应的socket,由它来向此服务器发送消息;接收到文本消息时,回调OnMessageReceivedListener来通知上层,在界面上显示;⑥启动第二个客户端,进行同样操作。蓝牙聊天系统服务器端实现:①在BTServer里,有两个ListView,分别用来显示从不同客户端接收到的文本消息,两个输入框,用来输入文本消息发给客户端,这是程序的界面构成;②启动程序后,到StartDiscoverableModeActivity界面,提示用户设置本设备“可被查找”;“可被查找”的含义是其他蓝牙设备在搜索的情况下,能获得服务器端的存在及其相关信息;为了隐私保护及安全,蓝牙设备默认是关闭状态,需要在用户的同意下才打开并设置为可被查找;③服务器进行初始化操作,包括构造OnMessageReceivedListener用以监听消息到来事件;启动ConnectionService,由它来处理发送和接收文本消息;④在ConnectionService里,创建ConnectionWaiter线程,在ConnectionWaiter线程里创建BluetoothServerSocket监听连接请求;⑤在有连接请求的时候,ConnectionService里的ConnectionWaiter线程接收请求,创建BluetoothSocket,并把远端请求的地址address和这个BluetoothSocket放到HashMap里,用来管理socket;接着启动BtStreamWatcher线程,用来监听这个socket里的输入输出流,把此线程也放到另外一个HashMap里;接着创建新的ConnectionWaiter线程,继续监听新的连接请求;也就是说,创建多个通信线程,并放到HashMap里进行管理,以完成蓝牙的一对多通信;⑥BtStreamWatcher用来处理输入输出流,在BTServer界面上进行输入的时候,根据口的地址(address)的不同,从HashMap里取出对应的socket,由它来向此address发送消息;接收到文本消息时,回调OnMessageReceivedListener来通知上层,在界面上显示。本文档来自技高网...

【技术保护点】
1.基于安卓移动蓝牙聊天系统,Android手机作为蓝牙客户端;客户端连到服务器,给服务器发送并接收文本消息,服务器也能够给客户端发送并接收文本消息。

【技术特征摘要】
1.基于安卓移动蓝牙聊天系统,Android手机作为蓝牙客户端;客户端连到服务器,给服务器发送并接收文本消息,服务器也能够给客户端发送并接收文本消息。2.基于安卓移动蓝牙聊天系统,本系统主要用到Android系...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:长沙有干货网络技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1