我正在制作一个Android应用程序,它可以从Android应用程序获得ping响应时间。 我已经用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();
答案 0 :(得分: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。
最后,这仅适用于真实设备。要让它在模拟器中工作,您需要配置adb以将重放重定向到模拟器。
祝你好运。