Bei der Entwicklung einer Ping-Anwendung für Android zur Überprüfung der Netzwerkkonnektivität ist es wichtig, die Einschränkung zu berücksichtigen, nur lokale IPs anzupingen. Dieser Artikel befasst sich mit dem zugrunde liegenden Problem und bietet eine Lösung zur Erweiterung der Ping-Funktion auf externe Server.
Der in der ursprünglichen Frage geteilte Code zeigt die grundlegende Implementierung von Ping auf Android. Beim Versuch, externe Server anzupingen, ist dies jedoch nicht der Fall. Dies liegt daran, dass Android den direkten Netzwerkzugriff standardmäßig auf Hosts außerhalb des lokalen Netzwerks des Geräts beschränkt.
Um diese Einschränkung zu überwinden, wird ein Workaround mit nativen Systembefehlen eingesetzt. Die bereitgestellte Lösung nutzt Runtime.exec(), um den Befehl /system/bin/ping mit der gewünschten IP-Adresse auszuführen (z. B. 8.8.8.8 für Google DNS).
Hier ist der aktualisierte Code, der die Lösung enthält:
private boolean executeCommand(){ System.out.println("executeCommand"); Runtime runtime = Runtime.getRuntime(); try { Process mIpAddrProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8"); int mExitValue = mIpAddrProcess.waitFor(); System.out.println(" mExitValue "+mExitValue); return mExitValue == 0; } catch (Exception e) { e.printStackTrace(); System.out.println(" Exception:"+e); } return false; }
Durch die Verwendung dieses Ansatzes initiiert die MethodeexecuteCommand() den nativen Ping-Befehl, wartet auf dessen Abschluss und gibt einen booleschen Wert zurück Zeigt das Ping-Ergebnis an. Dadurch können externe Server angepingt werden, was eine umfassendere Bewertung der Netzwerkkonnektivität innerhalb der Android-Anwendung ermöglicht.
Das obige ist der detaillierte Inhalt vonWie pinge ich externe IPs von Android-Java-Anwendungen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!