DhcpInfo не отвечает на сетевую маску в Android Lollipop

Вчера я обновил свой nexus 5 до lollipop, и мое приложение перестало работать, после небольшого исследования я обнаружил, что проблема, с которой DhcpInfo не возвращает ноль в переменной netmask.

Я не мог найти альтернативу этому классу.

1 ответ

Решение

Ты можешь использовать getNetworkPrefixLength метод InterfaceAddress, который вы получаете от NetworkInterface, Возвращает правильное значение в Lollipop.

NetworkInterface networkInterface = NetworkInterface.getByInetAddress(ipAddress);
for (InterfaceAddress address : networkInterface.getInterfaceAddresses()) {
    short netPrefix = address.getNetworkPrefixLength());
}

Примечание: он возвращает длину префикса сети, поэтому вам придется преобразовать его (/24 для 255.255.255.0 и т. Д.)

Другие вопросы по тегам