Ich sehe, dass die Methode veraltet ist und die Ersetzung getHostAddress () sein soll.
Meine Frage ist, wie ist getHostAddress ein Ersatz? Ich kann es anscheinend nicht dazu bringen, irgendetwas in der Nähe zu tun.
Was ich versuche, ist eine ganzzahlige Repräsentation einer Subnetzmaske zu nehmen und sie in eine Zeichenkette umzuwandeln.
formatIPAddress macht das perfekt.
Als Beispiel ist meine Subnetzmaske "255.255.255.192". Der ganzzahlige Wert, den der WifiManager zurückgibt, lautet 105696409. formatIPAddress gibt das korrekt zurück.
Ich kann anscheinend nicht erreichen, dass getHostAddress funktioniert, geschweige denn einen ganzzahligen Wert in einen Subnetzmaskenstring konvertieren.
Beispielcode, der funktioniert
%Vor%Hat jemand Erfahrung damit? Ich kann den Quellcode aus der Formatierungsklasse abrufen und einfach verwenden. Aber ich möchte nur die neue Methode verwenden.
Sie müssen das int in Byte [] konvertieren und dann dieses Array verwenden, um InetAddress:
zu instanziieren %Vor%Nun sehe ich, dass der Formatierer little-endian erwartet und bigInteger.toByteArray () gibt eine Big-Endian-Darstellung zurück, so dass das Byte [] umgekehrt werden sollte.
Sie könnten String.format
verwenden, um für jedes Oktett eine Byte-Maske zu erstellen:
Tags und Links android