2014-11-14 9 views
5

Wczoraj zaktualizowałem swój Nexus 5 do Lollipopa i moja aplikacja przestała działać, po drobiazgowym badaniu znalazłem problem, którego DhcpInfo nie jest, zwracając wartość null w zmiennej sieciowej.DhcpInfo nie reaguje na maskę sieci w Androidzie Lolipop

Nie mogłem znaleźć żadnej alternatywy dla tej klasy.

Wszelkie pomysły?

Pozdrowienia

+0

mam ten sam problem i nie znalazł jeszcze rozwiązania. Jednak gdzie przeczytałeś, że DhcpInfo jest przestarzałe? –

+0

Wygląda na to, że DhcpInfo nie jest już przestarzałe, ale moja aplikacja jest skonfigurowana do API 18, w API 18 ma być przestarzała :) http://developer.android.com/sdk/api_diff/19/changes/android. net.wifi.WifiManager.html –

+0

Używasz Androida Lollipop. Powinieneś więc używać poziomu Androida API 21 :) –

Odpowiedz

6

Można użyć getNetworkPrefixLength metodę InterfaceAddress, którą otrzymuje się z NetworkInterface. Zwraca poprawną wartość w Lollipop.

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

Uwaga: Zwraca długość prefiksu sieci, więc trzeba by przekształcić go (/ 24 dla 255.255.255.0 etc.)

+0

spowoduje to zwrócenie prefiksu Wi-Fi lub WAN prefiks? – FujiRoyale

Powiązane problemy