私はインターフェイス名なしでpingコマンドを使用する必要があるアンドロイドアプリケーションを開発しています。インタフェースなしの.Pingコマンドはうまくいきますが、インターフェイス名を指定するとpingが動作しません。インターフェイス名(例:wlan0)でAndroidでpingコマンドを実行するにはどうすればよいですか?
私は、コマンドの下にしようとしていることは
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);
この問題のいくつかの解決策を共有してください。
FYI:このPINGコマンドは、プログラムでAndroidで実行しています。 実際にはエラーはありません。間違った引数を与えた場合や、スーパーユーザーモードでしか実行できない引数がある場合などです。 あなたのプログラムがUbuntuで直接実行されるので(ping -I wlan0 192.168.1.119)、それが動作します。 –
エラーを取得するために、私はgetInputStream()の代わりにgetErrorStream()を使用しています。 エラー:ping:SO_BINDTODEVICE:操作が許可されていません Androidでpingを実行するためにインターフェイスを使用するにはroot権限が必要ですが、Linuxではroot権限でこれを実行する必要はありません。 –