一种基于蓝牙的Android移动设备自组网和通信的方法

文档序号:7872135阅读:783来源:国知局
专利名称:一种基于蓝牙的Android移动设备自组网和通信的方法
技术领域
本发明涉及一种基于蓝牙的Android移动设备自组网和通信的方法,具体来说包括如下的步骤:
组网步骤
首先移动设备启动蓝牙,搜寻并获取周边蓝牙设备的名称及MAC地址,具体来说,移动设备调用BluetoothAdapter.getDefaultAdapter()方法,得到本地默认的蓝牙适配器操作类BluetoothAdapter ,若返回为null则表示本地不支持蓝牙;否则,当发现蓝牙功能未启用时,如调用设置启用蓝牙。如果发现当前设备没有打开对外可见模式,贝1J通过传递Intent的方法来调用打开可被发现模式;然后调用BluetoothAdapter类的startDiscoveryO方法就可以执行一个异步方式获取周边的蓝牙设备,并通过BluetoothDevice的getName O方法获得设备的名称和getAddressO方法获得设备的MAC地址。接着移动设备与周围设备进行配对,分别与之连接,并交换找到的周围设备数量信息;根据周围设备的数量多少将移动设备排序,数值最大的连接周围设备,并将周围的移动设备信息加入路由表;按照周围设备数量由大到小的顺序,向等待接收通知的设备发送通知,设备收到连接的通知后,连接周围的设备,如果路由表中已有该设备信息则不连接,每次连接之后都更新整个网络的路由表信息。我们定义移动设备发送信息到目的设备所需经过的移动设备的个数为跳数,如果直接相连则跳数为O ;定义本机向目的设备发送信息时决定信息将发送到哪一个移动设备进行转发的移动设备的MAC地址为下一跳地址,如果下一个移动设备为目的设备,则下一跳地址为空。最后当所有设备都已经连接好,网络建成,每个移动设备界面显示的是路由表中与设备MAC地址对应的设备名称,选择即可通信。通信步骤:
首先移动设备检测路由表信息,计算与目标设备的距离即跳数,若目标设备与移动设备直接连接,则直接发送信息内容;否则将信息内容发送至下一跳地址所在设备即下一跳节点,然后逐个传递直至传送至目标设备,具体地说,发送方法使用write (byte [])方法将信息写入该输出流,然后使用getOutputStreamO方法得到输出流,发送信息给下一跳节点,下一跳节点的监听线程通过getlnputStreamO方法收到得到输入流,并调用read(byte [])方法读取输入信息内容并提取目的地址,如果此节点即为目的地址则结束通信过程,并将内容显示到移动设备的界面,否则就将数据继续发送至下一跳节点直至节点为目的地。本发明中,所述路由表信息中包含每一台设备的位置信息及MAC地址。本发明所述组网方法还包括新设备入网的方法,具体来说,包括了如下的步骤:
O新移动设备入网时,查询附近设备,并配对保存设备名称和MAC地址。2)如果附近设备的连接数已经大于7则不进行考虑,否则连接其中一个来获取整个网络的路由表。3)根据路由表信息中的跳数总和大小排序,按照递增的方式选择,如果选择的节点在可查找的附近设备中,则进行连接,移动设备入网成功,并更新移动设备路由表和整个网络的路由表信息。本发明所述组网方法还包括移动设备断开连接及网络重组过程,具体步骤如下: I)在移动设备端监听关闭蓝牙动作或者关机动作等可以导致蓝牙服务关闭的动作,并
在关闭之前,发送路由表更新信息,更新网络拓扑,断开连接后删除本机路由表信息。2)当有移动设备发现连接的周围设备断开连接时,发出广播信息更新网络中所有移动设备的路由表信息。3)移动设备检测路由表信息,如果断开连接的移动设备MAC地址,在目的地址中,且跳数为0,则进入步骤4,否则不进行任何操作。4)移动设备搜索周围除了本机连接之外的蓝牙设备,没有设备则不采取措施,否贝U,对于搜寻到的设备,采用新移动设备入网的方法,重新组建网络,连接在此移动设备下的子节点的网络拓扑结构不变。5)网络重组之后,更新移动设备的路由表信息,并在界面中显示移动设备的名称。
权利要求
1.一种基于蓝牙的Android移动设备自组网和通信的方法,其特征在于自组网方法包括如下步骤: 1)移动设备启动蓝牙,搜寻并获取周边蓝牙设备的名称及MAC地址; 2)移动设备与周围设备进行配对,分别与之连接,并交换找到的周围设备数量信息; 3)根据周围设备的数量多少将移动设备排序,数值最大的连接周围设备,而其他设备进入等待状态,并将周围的移动设备信息加入路由表; 4)按照周围设备数量由大到小的顺序,向等待接收通知的设备发送通知,设备收到连接的通知后,连接周围的设备,如果路由表中已有该设备信息则不连接,每次连接之后都更新整个网络的路由表信息; 5)所有设备都已经连接好,网络建成; 通信方法包括如下步骤: 1)移动设备检测路由表信息,计算与目标设备的距离; 2)若目标设备与移动设备直接连接,则直接发送信息内容;否则将信息内容发送至与移动设备相邻的设备,然后逐个传递直至传送至目标设备; 所述路由表信息中包含每一台设备的位置信息及MAC地址。
2.根据权利要求1所述的基于蓝牙的Android移动设备自组网和通信的方法,其特征在于:还包括新移动设备入网过程,包括如下步骤: O新移动设备入网时,查询附近设备,并配对保存设备名称和MAC地址; 2)若附近设备的连接数已经大于7则不进行考虑,否则连接其中一个来获取整个网络的路由表; 3)根据路由表信息中的一台设备连接周围设备的数量多少进行排序,按照递增的方式选择,如果选择的节点在可查找的附近设备中,则进行连接,移动设备入网成功,并更新移动设备路由表和整个网络的路由表信息。
3.根据权利要求1所述的基于蓝牙的Android移动设备自组网和通信的方法,其特征在于:还包括移动设备断开连接后的网络重组过程,包括如下步骤: 1)在移动设备端监听关闭蓝牙动作或者关机动作等可以导致蓝牙服务关闭的动作,并在关闭之前,发送路由表更新信息,更新网络拓扑,断开连接后删除本机路由表信息; 2)当有移动设备发现连接的周围设备断开连接时,发出广播信息更新网络中所有移动设备的路由表信息; 3)移动设备检测路由表信息,如果断开连接的移动设备MAC地址在目的地址中,且与之相邻,则移动设备搜索周围除了本机连接之外的蓝牙设备;否则将不采取动作; 4)若移动设备没有搜索到与本机连接之外的设备则不采取措施,否则,对于搜寻到的设备,采用新移动设备入网的方法,重新组建网络,连接在此移动设备下的子节点的网络拓扑结构不变; 5)网络重组之后,更新移动设备的路由表信息,并在界面中显示移动设备的名称。
全文摘要
本发明涉及一种基于蓝牙的Android移动设备自组网和通信的方法,组网方法包括如下步骤1)搜寻并获取周边蓝牙设备的名称及MAC地址;2)配对连接,并交换找到的周围设备数量信息;3)连接周围的设备并构成初始路由表;通信方法包括如下步骤1)移动设备检测路由表信息,计算与目标设备的距离;2)若目标设备与移动设备直接连接,则直接发送信息内容;否则将信息内容发送至与移动设备相邻的设备,然后逐个传递直至传送至目标设备。本发明与现有技术相比,在蓝牙的基础上,通过设计新的发送方式,不需要预设的网络设施,具有很好的适应性和实用性组建过程和重组过程完全透明,无需人工配置参数和设置;并且扩大了可通信的距离范围。
文档编号H04W40/24GK103179635SQ201310010519
公开日2013年6月26日 申请日期2013年1月11日 优先权日2013年1月11日
发明者孙知信, 房伟 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1