基于Android系统的多机蓝牙群通信方法

文档序号:7679141阅读:206来源:国知局
专利名称:基于Android系统的多机蓝牙群通信方法
技术领域
本发明属于通信技术领域,涉及数据信息的传输,具体的说,是一种基于Android 系统的多机蓝牙群通信方法。
背景技术
蓝牙,是一种支持设备进行短距离通信的无线电技术。能在包括移动电话、PDA、 无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用蓝牙技术,能够有效地简化移动通信终端设备之间的通信、设备与^ternet之间的通信,从而使数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,工作在全球通用的2. 4GHz ISM,即工业、科学、医学频段,其数据传输速率理论最高为 IMbps0蓝牙支持点对点及点对多点通信,在任意一个有效通信范围内,所有设备的地位都是平等的,首选提出通信要求的设备定为主设备,被动通信的设备为从设备。通过时分多址TDMA方式,1台主设备最多可同时与7台从设备进行通信,并可和更多个从设备保持同步。一台主设备和一台以上的从设备构成的网络成为微微网。目前Android手机端的数据通信主要通过短信系统来实现。短信是伴随数字移动通信系统而产生的一种电信业务,通过移动通信系统的信令信道和信令网,传送文字或数字短信息,属于一种非实时的、非语音的数据通信业务,具有信息传递准确可靠、迅速及时等优点。但是,这种数据通信方式具有如下问题1.手机端的短消息通信为非实时通信,无法实现群组实时通信;2.通过运营商进行短消息通信会产生费用问题;3.在移动G网或C网信号弱的区域进行通信时,会严重影响数据通信质量;4.通过运营商进行短消息通信会带来诸如信息泄露等潜在的安全问题。

发明内容
本发明的目的在于避免以上已有技术的不足,提出一种基于Android系统的多机蓝牙群通信方法,以提高移动G网或C网弱信号区域的数据通信质量,实现数据通信零费用的Android群通信。本发明的技术方案是基于Android系统构造蓝牙微微网,通过多线程方法,实现多机群通信。Android系统作为主流的操作系统,以其低廉的价格、系统开源、机型多、硬件配置占优等优点,在Google及摩托罗拉、三星、HTC、LG、Lumig0n等加盟厂家的鼎力支持下, 以逐步占据相当大的市场份额。本发明正是利用Android系统的这些优点进行具体的蓝牙网络构建与通信,其实现步骤包括如下(1)设置Android群通信主设备与从设备,开启主、从设备的蓝牙使用权限;创建主设备的蓝牙适配器BluetoothAdapter,作为所有蓝牙交互的入口,为搜索周边蓝牙从设备做好准备;
(2)通过主设备搜索其周边从设备,显示在主设备界面上,并由主设备向从设备发起蓝牙连接请求,若是第一次与该从设备进行连接,则先进行主、从设备的信息匹配,接收从设备的反馈信息并保存;反之,则创建一个列表,用来显示已经匹配好了的从设备,从中选取要通信的从设备,直接使用蓝牙API进行连接;(3)主、从设备信息匹配、连接成功后,主设备为每一个从设备建立一个通信线程 Thread,并通过调用 Android 系统自带的 ListenUsingRfcommWit-hServiceRecord方法,获取蓝牙服务套接字BluetoothServerSocket,以监听从设备的通信请求;(4)每一个从设备都调用 Android 系统自带的 CreateRfcommSocketTc^e-rviceRecord方法,获取蓝牙套接字BlueSocket,以管理从设备当前的连接信息; 每一个从设备都响应主设备建立的通信Thread线程,并向主设备发起通信请求;当主设备监听到从设备的通信请求并接受后,开始进行数据通信;(5)主设备进行数据的读取接收与广播转发,并将数据信息更新到消息界面中;(6)每一个从设备进行数据信息的发送与接收,并对数据信息更新到各自的消息界面中。本发明基于Android系统,具有如下优点本发明由于利用蓝牙无线技术与多线程技术,通过组建蓝牙微微网进行点对多点的无线连接,实现了 Android多机群通信,即可提供最多8人进行实时群组数据通信,并且在诸如隧道和郊区这些移动G网或C网信号较弱的区域,可以进行高质量的群组通信,有效的弥补了移动G网或C网的不足之处;同时由于本发明利用了蓝牙技术的开放、免费特性,故不需任何的通信费用;此外由于本发明利用蓝牙技术进行通信,不需要第三方介入,有效的避免了信息泄露问题。


图1是本发明的基于Android系统的多机蓝牙群通信流程图。
具体实施例方式以下参照附图对本发明作进一步详细描述一、本发明所应用的技术理论说明1、蓝牙微微网蓝牙提供点对点和点对多点的无线连接,在任意一个有效通信范围内,网络内所有设备的地位都是平等的,首先提出通信请求的设备定为主设备,被动进行通信的设备为从设备,通过时分多址TDMA方式,1台主设备最多可同时与7台从设备进行通信,并可和更多个从设备,最多256个保持同步但不进行通信。一台主设备和一台以上的从设备构成的网络称为蓝牙微微网。2、通用唯一识别码UUID通用唯一识别码UUID是指在一台机器上生成的1 位字符串,代表了主、从设备连接的一个标识,它由当前日期和时间、时钟序列、全局唯一的机器识别号三部分组成,对
4在同一时空中的所有机器都是唯一的。二、本发明的具体实现参照图1,本发明的具体实现步骤如下步骤一,Android主、从设备的初始蓝牙设置。(1. 1)设置Android主设备与从设备的蓝牙使用权限,若主、从设备的蓝牙使用权限未开启,则通过以下程序代码来开启,以确保主、从设备对蓝牙的支持<uses-permission android :name =〃 android, permission. BLUETOOTH" /><uses-permission android :name = " android, permission. BLUET00TH_ ADMIN" /> ;(1. 2)主设备通过调用系统静态方法getDefaultAdapterO,自动生成蓝牙适配器BluetoothAdapter,作为所有蓝牙交互的入口,为搜索周边蓝牙从设备做好准备。步骤二,Android主、从设备的匹配连接。(2. 1)主设备搜索其周边从设备,将搜索结果显示在主设备界面上,由于搜索过程很耗费资源,所以一旦主设备查找到所需的蓝牙从设备,则先停止搜索,然后再向从设备发起连接请求;(2. 2)主设备向从设备发起蓝牙连接请求,若是第一次与该从设备进行连接,则先进行主、从设备的信息匹配,即主设备向从设备发送一个请求匹配的信息,从设备接收到该信息后,反馈自己的姓名、物理MAC地址信息给主设备,主设备将该信息保存,然后创建一个列表,用来显示已经匹配好了的从设备,并从中选取要通信的从设备,使用蓝牙API接口与从设备进行连接;反之,主、从设备不进行信息匹配,主设备直接创建一个列表显示已匹配好的从设备,选取要通信的从设备,使用蓝牙API与从设备进行连接;步骤三,Android主设备建立多线程,监听通信请求。(3. 1)主、从设备信息匹配、连接成功后,主设备通过调用Android系统自带的Lis tenUsingRfcommffithServiceRecord 方法,获取蓝牙月艮务套接字 BluetoothServerSocket, 用来监听从设备的通信请求,该Lister^singRfcommWithkrviceRecord方法包含Mring 和UUID两个参数,其中参数Mring代表了此次通信的名称,UUID为主设备的通用唯一识别码;(3. 2)当监听到一个通信请求并接受后,则关闭监听程序,并为每一个从设备建立一个通信线程Thread,用于进行数据通信。步骤四,Android从设备响应多线程,发起通信请求。(4. 1)每一个从设备都调用Android系统自带的CreateRfcommSocket-ToServiceRecord方法,获取蓝牙套接字BlueSocket,以管理当前主、从设备间的连接;该CreateRfcommSocketToServiceRecord方法包含一个参数,即从设备的UUID,此处的UUID与主设备的UUID相同;(4. 2)每一个从设备在获取蓝牙套接字BlueSocket之后,都向主设备发起通信请求,并响应主设备建立的通信线程Thread ;(4. 3)当主设备监听到从设备的通信请求并接受,且从设备响应了主设备建立的通信线程Thread后,主、从设备之间开始进行数据通信。步骤五,Android主设备的数据收发与消息界面的同步更新。
(5. 1)当主设备要接收来自于每一个从设备的数据信息时,调用getlnputMream 方法不断的获取输入数据流,通过读操作read (byte [])按字节读取输入数据流中的数据; 当主设备要发送数据信息给每一个从设备时,通过写操作write (byte [])将数据写入输出数据流,调用getOutputMream方法将输出数据流广播给每一个从设备;(5. 2)主设备将收、发的数据信息即时传送给自身的用户界面进程,通过用户界面进程,将数据传送到自身的消息界面,调用update方法实现对消息界面的同步更新。步骤六,Android从设备的数据收发与消息界面的同步更新。(6. 1)当每一个从设备要接收来自于主设备的数据信息时,调用getlnputMream 方法不断的获取输入数据流,通过读操作read (byte [])按字节读取输入数据流中的数据; 当每一个从设备要发送数据信息给主设备时,通过写操作write (byte [])将数据写入输出数据流,调用getOutputMream方法将输出数据流发送给主设备;当每一个从设备要发送数据信息给其它从设备时,通过写操作write (byte [])先将数据发送给主设备,主设备用读操作read (byte [])按字节读取该数据信息,然后主设备再用写操作write (byte [])将该数据转发给其它从设备,其它从设备用读操作read (byte [])按字节读取该数据信息;(6. 2)每一个从设备都将收、发的数据信息即时传送给自身的用户界面进程,通过用户界面进程,将数据传送到自身的消息界面,调用update方法实现对消息界面的同步更新。
权利要求
1.一种基于Android系统的多机蓝牙群通信方法,包括如下步骤(1)设置Android群通信主设备与从设备,开启主、从设备的蓝牙使用权限;创建主设备的蓝牙适配器BluetoothAdapter,作为所有蓝牙交互的入口,为搜索周边蓝牙从设备做好准备;(2)通过主设备搜索其周边从设备,显示在主设备界面上,并由主设备向从设备发起蓝牙连接请求,若是第一次与该从设备进行连接,则先进行主、从设备的信息匹配,接收从设备的反馈信息并保存;反之,则创建一个列表,用来显示已经匹配好了的从设备,从中选取要通信的从设备,直接使用蓝牙API进行连接;(3)主、从设备信息匹配、连接成功后,主设备为每一个从设备建立一个通信线程 Thread,并通过调用 Android 系统自带的 ListenUsingRfcommWithkrvic-eRecord方法,获取蓝牙服务套接字BluetoothServerSocket,以监听从设备的通信请求;(4)每一个从设备都调用Android系统自带的CreateRfcommSocketToSer-ViceRecord方法,获取蓝牙套接字BlueSocket,以管理从设备当前的连接信息;每一个从设备都响应主设备建立的通信Thread线程,并向主设备发起通信请求;当主设备监听到从设备的通信请求并接受后,开始进行数据通信;(5)主设备进行数据的读取接收与广播转发,并将数据信息更新到消息界面中;(6)每一个从设备进行数据信息的发送与接收,并对数据信息更新到各自的消息界面中。
2.根据权利要求1所述的基于Android系统的多机蓝牙群通信方法,其中步骤(2)所涉及的主、从设备的信息匹配,是指主设备中应保存有从设备的姓名、物理MAC地址信息; 若没有,则由主设备向从设备发送一个请求匹配的信息,从设备接收到该信息后,反馈自己的姓名、物理MAC地址信息给主设备,主设备将该信息保存。
3.根据权利要求1所述的基于Android系统的多机蓝牙群通信方法,其中步骤(3)所述的蓝牙服务套接字BluetoothServerSocket,是用来监听通信请求的,当监听到一个通信请求并接受时,会生成一个蓝牙套接字BluetoothSocket来管理当前主设备的连接。
4.根据权利要求1所述的基于Android系统的多机蓝牙群通信方法,其中步骤(5)所述的主设备进行数据的读取接收与广播转发,一是指主设备通过读操作读取每一个从设备发送来的数据,并将该数据信息显示到消息界面中;二是指主设备通过写操作将数据广播给其它每一个从设备,并将该数据信息显示到消息界面中。
5.根据权利要求1所述的基于Android系统的多机蓝牙群通信方法,其中步骤(5)和 (6)所涉及的将数据信息更新到消息界面中,是指将数据信息传送给主、从设备各自的用户界面进程,通过用户界面进程,将数据传送到主、从设备各自的消息界面,实现对消息界面的更新。
6.根据权利要求1所述的基于Android系统的多机蓝牙群通信方法,其中步骤(6)所述的每一个从设备进行数据信息的发送与接收,一是指每一个从设备都通过读操作读取主设备发送来的数据,并将该数据信息显示到消息界面中;二是指每一个从设备都通过写操作将数据发送给主设备,并将该数据信息显示到消息界面中。
全文摘要
本发明公开了一种基于Android系统的多机蓝牙群通信方法,主要解决现有移动G网或C网在弱信号区域数据通信质量差,通信费用高的问题。其实现步骤为Android主、从设备开启蓝牙,主设备创建蓝牙适配器BluetoothAdapter,搜索周边从设备,主、从设备匹配连接,组建蓝牙微微网;主设备为每个从设备建立一个线程Thread,监听通信请求,每个从设备响应主设备建立的Thread线程,发起通信请求;主、从设备进行数据的发送与接收,并将收、发的数据信息即时更新到各自的消息界面上。本发明具有通信零费用,在弱信号区域通信效果好,且不需第三方介入的优点,适宜于短距离智能手机的数据通信。
文档编号H04W84/20GK102170679SQ20111014097
公开日2011年8月31日 申请日期2011年5月28日 优先权日2011年5月28日
发明者吕锡香, 李志 , 李晖, 郑欢欢 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1