Android WiFi直接Ip地址
Wifi将Ip_地址和任何Wifi路由器提供给智能手机的Ip地址是否相同? 我下面的代码获取我的IP地址Android WiFi直接Ip地址,android,android-wifi,wifi-direct,wifimanager,wifip2p,Android,Android Wifi,Wifi Direct,Wifimanager,Wifip2p,Wifi将Ip_地址和任何Wifi路由器提供给智能手机的Ip地址是否相同? 我下面的代码获取我的IP地址 public String getP2PIpAddr() { WifiManager wifiManager = (WifiManager) getSystemService(WIFI_P2P_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ip = wifiInfo.getIpAddre
public String getP2PIpAddr() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_P2P_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff));
return ipString;
}
但当我没有连接到任何wifi路由器时,它会给我0.0.0.0。但它会将路由器给我的IP地址返回给手机,而不是wifi直接IP地址
请帮忙
提前谢谢 否IP地址不相同。 您在这里出错,
getSystemService(WIFI\u P2P\u服务)
返回的不是WifiManager
其次
当您通过路由器或热点连接到普通Wifi网络时,可以使用wifiManager.getConnectionInfo()。通过像这样的WifiDirect连接时无法获得IP,因为它不是正常的wifi网络。因此,您获得IP的原因是0.0.0.0
现在主要的问题是WifiDirect中的IP是什么。
如果您是GroupOwner,那么您已经修复了GO_IP=192.168.43.1
。因此,在或中,您可以执行info.isGroupOwner()
,如果您不是groupOwner,则另一个系统是,因此他的IP是GO\u IP,然后该系统可以使用GO\u IP与GO\u进行通信
现在,如果GO想与客户端通信,他可以使用网络接口
获取IP。参考这个
我认为这一切都应该解决你的问题