WifiP2pDevice仅提供MAC地址。 http://developer.android.com/reference/android/net/wifi/p2p/WifiP2pDevice.html
我想在requestPeers()之后获取其他设备的IP地址(但不是MAC地址)。 怎么办呢?
答案 0 :(得分:2)
有一种方法可以实现这一目标......
将Network Service Discovery (NSD)
添加到您的应用中,您的用户可以识别本地网络上支持您的应用所请求服务的其他设备。这对于各种点对点应用程序非常有用,例如文件共享或多人游戏。
首先你需要做
1. 在网络上注册您的服务
2. 在网络上发现服务
3. 连接到网络上的服务
4. 在应用程序关闭时取消注册您的服务
完成 3 无积分后,您的应用会收到详细的服务信息,包括IP address
和port number
。这是创建自己的服务网络连接所需的一切。
答案 1 :(得分:2)
一旦设备连接到组中,WifiP2p auto就会分配IP。基本上,组所有者充当DHCP服务器并将IP分配给组中的所有其他对等方,GO获得GO_IP = 192.168.49.1
。
将角色分配给GO,每当新设备连接时,通过从文件/proc/net/arp
读取,将MAC地址与IP的哈希映射发送给它。现在,当您要将文件或消息发送到MAC地址时,请从此散列映射中读取其IP。但是对等体只能将消息发送到GO,因此如果为GO_IP以外的IP发送消息,则需要将角色分配给GO,然后将其转发到相应的设备。
如果您发现此解决方案有任何问题,请与我们联系。