2

Androidアプリケーションからping応答時間を取得できるAndroidアプリケーションを作成しています。私はすでにWindows環境でそれを行っていますが、Androidデバイスに持ち込むと、デバイスは応答を送信できません。どうすればこの問題を解決できますか?

前もって感謝します。ここに私のコードがあります

                 String ip="www.google.com"; String pingResult="  ";
                String pingCmd="ping"+ip;

                Runtime r=Runtime.getRuntime();
                Process p=r.exec(pingCmd);
                BufferedReader in=new BufferedReader(new InputStreamReader(p.getInputStream()));
                String inputLine;
                Toast.makeText(getApplicationContext(), "Going loop", 1).show();
                while((inputLine=in.readLine())!=null)
                {
                    pingResult=inputLine;
                }
                Toast.makeText(getApplicationContext(),pingResult, 1).show();
                in.close();
4

1 に答える 1

1

行を変更すると、正常に動作します。

Process p=r.exec(pingCmd); 

に:

Process p=r.exec(new String[] {"ping", "-c 4", "www.google.pt"}); 

その理由は:

-Android exec コマンドは、String ではなく String[] を予期します。

- -c パラメーターは、ping の数を 4 に制限するために必要です (Windows の動作を再現するため)。そうしないと、永久に ping が実行されます。

最後に、これは実際のデバイスでのみ機能します。エミュレーターで動作させるには、ping リプレイをエミュレーターにリダイレクトするように adb を構成する必要があります。

幸運を。

于 2012-09-30T16:30:49.720 に答える