由于onConnectionInfoAvailable(WifiP2pInfo info) 这个方法中,建立P2P连接后,info只能获取到对方的P2P0地址
所以可以通过如下方法获取P2P0的IPAddress.
注意,必须P2P连接后成功才能调用此方法,否则无法读取到P2P0的IP 地址
如下是代码的解决思路:
@RequiresApi(api = Build.VERSION_CODES.N)
public static String getP2PIPAddress() throws Exception {
String P2PIPAddress = "";
java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
StringBuilder sb = new StringBuilder();
ArrayList<String> tmpMacList=new ArrayList<>();
while(en.hasMoreElements()){
NetworkInterface iface = en.nextElement();
List<InterfaceAddress> addrs = iface.getInterfaceAddresses();
for(InterfaceAddress addr : addrs) {
InetAddress ip = addr.getAddress();
if(ip.toString().contains("192.168."))
{
P2PIPAddress = ip.toString().substring(1);
Log.d("InetAddress","P2P0 IP === "+ P2PIPAddress);
}
}
}
return P2PIPAddress;
}