【问题标题】:WiFi direct Ip addressWiFi直接IP地址
【发布时间】:2015-06-14 17:33:23
【问题描述】:

任何WIFI路由器给智能手机的Wifi-Direct Ip_address和IP地址是否相同? 我在下面的代码中获取我的 IP 地址。

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-direct IPAddress..

请帮忙...

提前谢谢..

【问题讨论】:

    标签: android android-wifi wifi-direct wifimanager wifip2p


    【解决方案1】:

    不,IP 地址不一样。 你在这里犯了错误,getSystemService(WIFI_P2P_SERVICE) 返回WifiP2pManager 而不是WifiManager

    其次 当您连接到普通 Wifi 网络(即通过路由器或热点)时,您使用 wifiManager.getConnectionInfo()。像这样通过 WifiDirect 连接时,您不会获得 IP,因为它不是普通的 wifi 网络。因此,您获得 IP 为0.0.0.0 的原因。

    现在主要的问题是 WifiDirect 中的 IP 是什么。 如果您是 GroupOwner,则您已修复 GO_IP = 192.168.43.1。所以,在onConnectionInfoAvailableonGroupInfoAvailable,你可以做info.isGroupOwner(),如果你不是groupOwner,那么另一个系统是,因此他的IP是GO_IP,那么这个系统可以与GO 使用 GO_IP

    现在如果 GO 想与客户端通信,他可以使用NetworkInterfaces 获取他的 IP。参考这个how to get the client IP

    我认为这一切应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 2013-05-19
      • 2014-05-25
      相关资源
      最近更新 更多