dhcp.ipAddress возвращает 0

При попытке получить IP-адрес маршрутизатора через WiFi-менеджер не может получить то же самое. Ниже приведен фрагмент кода.

WifiManager wifiMgr = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifiMgr.getDhcpInfo();
System.out.println("ip add - " + dhcp.ipAddress + "gateway add -" + dhcp.gateway);

оба IP add и gateway add всегда возвращают 0. Я иду где-нибудь не так??? что-нибудь еще нужно сделать?

Я уже прошел через много вопросов, связанных с переполнением стека, но ни на один из них нет ответа. Пожалуйста, ответьте на вопрос, ваш быстрый ответ был бы очень полезен, дайте мне знать, если вам нужна дополнительная информация.

2 ответа

Возвращает ноль, если происходит RemoteException. Может быть, вам не хватает интернет-разрешения в файле манифеста?

Вы должны проверить, если какая-либо сеть Wi-Fi доступна в первую очередь, если нет, DhcpInfo.ipAdress возвращает 0

Если вы хотите преобразовать в точечный формат, попробуйте это (если это действительный адрес IPv4):

try {
    WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
    int ipAddress = wm.getDhcpInfo().ipAddress;
    byte[] ipAddressbyte = BigInteger.valueOf(ipAddress).toByteArray();
    for (int i = 0; i < ipAddressbyte.length / 2; i++) {
        int temp = ipAddressbyte[i];
        ipAddressbyte[i] = ipAddressbyte[ipAddressbyte.length - i - 1];
        ipAddressbyte[ipAddressbyte.length - i - 1] = (byte) temp;
    }

    InetAddress myaddr = InetAddress.getByAddress(ipAddressbyte);
    String hostaddr = myaddr.getHostAddress(); // numeric representation (such as "127.0.0.1")
    Log.d("INET",hostaddr);
}
catch (Exception exc) {
    Log.d("Exception", exc.getMessage());
}
Другие вопросы по тегам