Ich entwickle eine Android-App, wo ich Ping-Befehl mit Interface-Namen verwenden muss .Ping-Befehl ohne Schnittstelle funktioniert gut, aber wenn ich den Schnittstellennamen Ping nicht funktioniert.Ping mit Schnittstellenname funktioniert in Linux-Terminal ohne Root-Berechtigung.Wie führe ich den Ping-Befehl in Android mit dem Namen der Schnittstelle aus (Beispiel: wlan0)?
ich unter Befehl versuchen
pingCommand = "ping -I wlan0 192.168.230.2"; //Does not work
proc = runtime.exec(pingCommand);
pingCommand = "ping 192.168.230.2"; //This does work
proc = runtime.exec(pingCommand);
Bitte einige Lösungen für dieses Problem teilen.
FYI: Ich führe diesen Ping-Befehl in Android über Programm. Eigentlich gibt es keinen Fehler, es ist wie wenn Sie falsches Argument/einige Argumente geben, die nur im Super-User-Modus ausgeführt werden können. Wie Ihr Programm läuft (Ping -I wlan0 192.168.1.119) in Ubuntu direkt, so dass es funktioniert. –
Um einen Fehler zu bekommen, habe ich getErrorStream() anstelle von getInputStream() verwendet. FEHLER: ping: SO_BINDTODEVICE: Operation nicht erlaubt Bedeutet dies, dass root-Berechtigung erforderlich ist, um die Schnittstelle für Ping in Android zu verwenden? Aber in Linux-Root-Berechtigung ist nicht erforderlich, um das gleiche durchzuführen. –