android 使用ping命令问题,诚求前辈检查错误.万分感谢

djqcj 2016-12-01 09:50:40
Runtime runtime = Runtime.getRuntime();
Process process = null;
String line = null;
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String ip = "www.baidu.com";
boolean res = false;
try
{
//process = runtime.exec("ping " +ip);
process = runtime.exec("ping -c 1 -w 100" +ip);
is = process.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);

while((line = br.readLine()) != null)
{
if(line.contains("TTL"))
{
res = true;
break;
}
}
is.close();
isr.close();
br.close();
if (res)
{
Toast.makeText(MainActivity.this, "ping 成功", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(MainActivity.this, "ping 失败", Toast.LENGTH_SHORT).show();
}
}catch(IOException e)
{
Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
runtime.exit(1);
}



在while处,line获取到的值是空的,是我的代码哪里写错了吗?诚求前辈莅临指导
...全文
631 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
nkniujun 2017-08-22
  • 打赏
  • 举报
回复
命令错误,w要大写,日志打印出命令去命令行试一下
新靖界 2016-12-08
  • 打赏
  • 举报
回复
引用 4 楼 djqcj 的回复:
[quote=引用 1 楼 lilidejing 的回复:] 试试这个 /** * 判断外网是否连接 * * @param ip * @return */ public boolean weatherNetConnect(String ip) { Runtime run = Runtime.getRuntime(); Process proc = null; try { String str = "ping -c 1 -i 0.2 -W 1 " + ip; System.out.println(str); proc = run.exec(str); int result = proc.waitFor(); if (result == 0) { return true; } else { return false; } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } finally { proc.destroy(); } return false; }
还是不行.得出else的结果.ping的是百度[/quote] 可能系统木有相应的权限
SeaHome81 2016-12-06
  • 打赏
  • 举报
回复
引用 7 楼 djqcj 的回复:
引用 6 楼 seahome81 的回复:
2楼说的空格的问题,楼主有无检查
检查了,依然不行
is 、isr 、br都有值吗?如果也没值,那就检查("ping -c 1 -w 100" +ip) 这里的空格,另外,100太大了吧,如果是写在UI线程,长时间block住会出ANR的问题
djqcj 2016-12-05
  • 打赏
  • 举报
回复
别沉啊...到底是哪里出了问题不能ping....
djqcj 2016-12-05
  • 打赏
  • 举报
回复
引用 6 楼 seahome81 的回复:
2楼说的空格的问题,楼主有无检查
检查了,依然不行
SeaHome81 2016-12-05
  • 打赏
  • 举报
回复
2楼说的空格的问题,楼主有无检查
李继康 2016-12-02
  • 打赏
  • 举报
回复
/system/bin/ping
M_O_ 2016-12-02
  • 打赏
  • 举报
回复
"ping -c 1 -w 100" +ip 这样100和ip会连在一起的,命令错误
djqcj 2016-12-02
  • 打赏
  • 举报
回复
引用 1 楼 lilidejing 的回复:
试试这个 /** * 判断外网是否连接 * * @param ip * @return */ public boolean weatherNetConnect(String ip) { Runtime run = Runtime.getRuntime(); Process proc = null; try { String str = "ping -c 1 -i 0.2 -W 1 " + ip; System.out.println(str); proc = run.exec(str); int result = proc.waitFor(); if (result == 0) { return true; } else { return false; } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } finally { proc.destroy(); } return false; }
还是不行.得出else的结果.ping的是百度
新靖界 2016-12-02
  • 打赏
  • 举报
回复
试试这个 /** * 判断外网是否连接 * * @param ip * @return */ public boolean weatherNetConnect(String ip) { Runtime run = Runtime.getRuntime(); Process proc = null; try { String str = "ping -c 1 -i 0.2 -W 1 " + ip; System.out.println(str); proc = run.exec(str); int result = proc.waitFor(); if (result == 0) { return true; } else { return false; } } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } finally { proc.destroy(); } return false; }

80,476

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧