Android - Formatter.formatIPAddress Abschaffung mit API 12

8

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.

    
Anthony Womack 12.06.2013, 00:30
quelle

2 Antworten

4

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.

    
DNax 12.06.2013 01:32
quelle
0

Sie könnten String.format verwenden, um für jedes Oktett eine Byte-Maske zu erstellen:

%Vor%     
Jaime Marín 30.03.2018 03:41
quelle

Tags und Links