买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:珠海全志科技股份有限公司
摘要:本发明公开了一种在安卓WiFi‑Direct连接中获取对等设备IP地址的方法及设备,该方法包括以下步骤:与对等设备建立WiFi‑Direct连接;请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。该方法不改动Android原生WiFi‑Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi‑Direct连接状态下,可以保证能够获取到对等设备的IP地址。
主权项:1.一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:包括以下步骤:S1:与对等设备建立WiFi-Direct连接;S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;S3:依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址;所述S2包含以下步骤:S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息;S22:依据对等网络组信息确定对等设备的角色;S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息;S24:从WifiP2pDevice信息中获取对等设备相应的所述MAC地址。
全文数据:在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备技术领域本发明涉及通信技术领域,尤其涉及一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备。背景技术WiFi-Direct标准是指允许无线网络中的设备无需通过无线路由器即可相互连接。与蓝牙技术类似,这种标准允许无线设备以点对点P2P形式互连,而且在传输速度与传输距离方面则比蓝牙有大幅提升。在安卓Android系统的原生WiFi-Direct框架下,两个设备之间连接成功之后,在本地设备处于群组用户GroupClient,简称GC)角色时,其对等设备处于群组拥有者GroupOwner,简称GO)角色,本地设备可以通过WifiP2pInfo.groupOwnerAddress.getHostAddress方法直接获取对等设备的IP地址;在本地设备处于GO角色时,其对等设备处于GC角色,此时,本地设备只能获取对等设备的MAC信息而无法直接获取对等设备的IP地址。在不改动原生框架的情况下,行业内通用的获取对等设备IP地址的方法是:(1)两个设备之间建立WiFi-Direct连接时,通过设置WifiP2pConfig.groupOwnerIntent建议值,尽量建议本地设备被协商分配为GC角色,但当对等设备的WifiP2pConfig.groupOwnerIntent建议值相同时,GO、GC的角色是随机的。(2)本地设备被分配为GO角色时,通过额外创建Socket并监听,需要等到对等设备主动来连接时,通过Socket.getInetAddress方法才获取到对等设备的IP地址;在多对等设备连接环境下,还需要根据Android原生WiFi-Direct框架获取到的MAC地址信息来甄选出准确的IP地址。可见,现有的获取对等设备IP地址的方法复杂、需要分配设备角色、被动的依赖于对等设备,且并不能保证一定能够获取到对等设备的IP地址。发明内容针对现有技术的不足,本发明提出了一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备,该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址,解决了现有对等设备IP地址获取方法需复杂、需要分配设备角色、被动的依赖于对等设备的问题。为了实现上述目的,本发明技术方案如下:一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,包括以下步骤:S1:与对等设备建立WiFi-Direct连接;S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;S3:依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。进一步地,步骤S2包含以下步骤:S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息;S22:依据对等网络组信息确定对等设备的角色;S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息;S24:从WifiP2pDevice信息中获取对等设备相应的MAC地址。进一步地,步骤S3包含以下步骤:S31:读取本地的procnetarp节点,获取ARP节点地址缓存表;S32:依据所述MAC地址检索ARP节点地址缓存表中的HWaddress项;S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项;S34:确定ARP节点地址缓存表中HWaddress项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IPaddress项,即为对等设备相应的IP地址。进一步地,步骤S21包含以下步骤:接收到本地的WifiP2pManager.WIFIP2P_CONNECTIONCHANGEDACTION广播后,通过WifiP2pManager.requestGroupInfo方法请求获取对等网络组信息。进一步地,步骤S22包含以下步骤:依据WifiP2pGroup类中的mIsGroupOwner成员确定本地设备的角色;依据本地设备的角色确定对等设备的角色。进一步地,步骤S23包含以下步骤:若对等设备为群组拥有者角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为群组用户角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现上述任意一项方法的步骤。本发明的有益效果:该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi-Direct连接状态下,可以保证本地设备能够获取到对等设备的IP地址。附图说明图1为本发明方法的流程示意图。图2为Android系统原生WiFi-Direct框架中WifiP2pGroup类的结构简图。图3为Android系统原生WiFi-Direct框架中WifiP2pDevice类的结构简图。图4为ARP节点地址缓存表的结构简图。具体实施方式下面结合附图和实施例,进一步阐述本发明。实施例1:如图1所示,一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,包括以下步骤:S1:与对等设备建立WiFi-Direct连接。S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址。S3:依据该MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。该方法不改动Android原生WiFi-Direct框架,通过对等设备的MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,直接获取对等设备的IP地址;且不依赖于对等设备,无需分配设备的角色;方法简单有效,在WiFi-Direct连接状态下,可以保证本地设备能够获取到对等设备的IP地址。具体地,步骤S2包含以下步骤S21-S23:S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息或称对等连接组信息。两个设备建立WiFi-Direct连接之后,本地设备Android原生WiFi-Direct框架将接收到本地的WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION广播,即表示WiFiP2P连接状态已发生改变,说明本地设备已经与相应的对等设备建立WiFi-Direct连接,然后,本地设备通过WifiP2pManager.requestGroupInfo方法请求获取对等网络组信息,此时,WifiP2pManager.requestGroupInfo方法里面的onGroupInfoAvailable接口会被自动调用,得到WifiP2pGroup类,即所述对等网络组信息。如图2所示,为WifiP2pGroup类的结构简图。WifiP2pGroup类是一个表示WiFiP2P群组的类。一个P2P群组由一个GO和一个或多个GC组成。其中,mIsGroupOwner成员定义了本地设备为GO角色还是GC角色,mOwner成员包含了本地设备与对等设备两者中属于GO角色的设备的WifiP2pDevice信息,mClients成员包含了本地设备与对等设备两者中属于GC角色的设备的WifiP2pDevice信息。当本地设备为GO角色时,可能会同时与多个对等设备处于Direct连接,此时,本地设备WifiP2pGroup类的mClients成员中将存有多个对等设备的WifiP2pDevice信息。本地设备一次只能访问一个对等设备,本地设备将要访问哪个对等设备是已知的,本地设备的WiFi-Direct框架会获取当前将要访问的对等设备的相关广播信息,依据该相关广播信息即可从mClients成员中选出相应的对等设备的WifiP2pDevice信息。S22:依据对等网络组信息确定对等设备的角色。依据WifiP2pGroup类中的mIsGroupOwner成员可确定对等设备是处于群组拥有者角色还是群组用户角色状态。实际上,mIsGroupOwner成员定义的是本地设备的角色,确定了本地设备的角色,对等设备的角色也就确定了。因为,两个设备之间采用WiFi-Direct连接时,当本地设备为GO角色时,其对等设备一定为GC角色;当本地设备为GC角色时,其对等设备一定为GO角色。因此,可以借助WifiP2pGroup类中的mIsGroupOwner成员确定对等设备的角色。S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息。若对等设备为GO角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为GC角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。S24:从WifiP2pDevice信息中获取对等设备相应的MAC地址。WifiP2pDevice类的结构如图3所示,WifiP2pDevice里面的deviceAddress即为对等设备的MAC地址。具体地,步骤S3包含以下步骤S31-S34:S31:读取本地设备的procnetarp节点,获取ARP节点地址缓存表。S32:依据MAC地址检索ARP节点地址缓存表中的HWaddress项。S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项。S34:确定ARP节点地址缓存表中HWaddress项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IPaddress项,即为对等设备相应的IP地址。如图4所示,为ARP节点地址缓存表的简图。ARP节点地址缓存表保存了本地设备所连接的其它各目标设备的地址等信息,记录了各目标设备的MAC地址与IP地址的对应关系,其中包含了目标设备的名称Device项、MAC地址HWaddress项、IP地址IPaddress项等信息。本地设备不仅会与各目标设备建立点对点连接,也会采用其它的方式与各目标设备进行连接。其中,采用点对点方式与本地设备建立连接的目标设备,其在ARP节点地址缓存表中的名称一定会带有“p2p”字样的关键词;再结合已获取的对等设备的MAC地址从这些名称中带有“p2p”字样的设备中确定相应的对等设备,便可唯一的找到该对等设备的IP地址。实施例2:本实施例提供了一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现实施例1的方法的步骤S1-S3。具体地,计算程序被处理器执行时还实现实施例1的方法的步骤S21-S23。具体地,计算程序被处理器执行时还实现实施例1的方法的步骤S31-S34。以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的基本构思的前提下直接导出或联想到的其它改进和变化均应认为包含在本发明的保护范围之内。
权利要求:1.一种在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:包括以下步骤:S1:与对等设备建立WiFi-Direct连接;S2:请求获取对等网络组信息,依据对等网络组信息确定对等设备相应的MAC地址;S3:依据所述MAC地址及表示点对点连接的关键词检索ARP节点地址缓存表,确定对等设备相应的IP地址。2.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:所述S2包含以下步骤:S21:接收到本地的表示WiFi点对点连接状态已发生改变的广播后,请求获取对等网络组信息;S22:依据对等网络组信息确定对等设备的角色;S23:依据对等设备的角色获取对等设备的WifiP2pDevice信息;S24:从WifiP2pDevice信息中获取对等设备相应的所述MAC地址。3.根据权利要求1所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:所述S3包含以下步骤:S31:读取本地的procnetarp节点,获取ARP节点地址缓存表;S32:依据所述MAC地址检索ARP节点地址缓存表中的HWaddress项;S33:依据“p2p”关键词检索ARP节点地址缓存表中的Device项;S34:确定ARP节点地址缓存表中HWaddress项为所述MAC地址且Device项带有“p2p”关键词的一栏中所对应的IPaddress项,即为对等设备相应的IP地址。4.根据权利要求2所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:所述S21包含以下步骤:接收到本地的WifiP2pManager.WIFIP2P_CONNECTIONCHANGEDACTION广播后,通过WifiP2pManager.requestGroupInfo方法请求获取对等网络组信息。5.根据权利要求2所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:所述S22包含以下步骤:依据WifiP2pGroup类中的mIsGroupOwner成员确定本地设备的角色;依据本地设备的角色确定对等设备的角色。6.根据权利要求2所述的在安卓WiFi-Direct连接中获取对等设备IP地址的方法,其特征在于:所述S23包含以下步骤:若对等设备为群组拥有者角色,则依据WifiP2pGroup类内的mOwner成员得到对等设备的WifiP2pDevice信息;若对等设备为群组用户角色,则依据WifiP2pGroup类内的mClients成员得到对等设备的WifiP2pDevice信息。7.一种在安卓WiFi-Direct连接中获取对等设备IP地址的设备,其特征在于:包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算程序,计算程序被处理器执行时实现权利要求1至6中任意一项所述的方法的步骤。
百度查询: 珠海全志科技股份有限公司 在安卓WiFi-Direct连接中获取对等设备IP地址的方法及设备
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。