在ADB中ping可用,但在程序里调用ping总是报错“permission denied”

gokill 2015-06-25 04:31:09

大神们,

写了个安卓ping的程序,但是每次总是返回 2.
查看errorstream,发现错误信息是 “permission denied”。
我用的手机是root 过的,而且ping命令在ADB状态下是可用的。
我用的代码就是之前在论坛里搜到的,看之前的帖子,好像这个代码是好用的。
查了半天也没有找出结果,万般无奈,上来发帖求助。
哪位大神行行好, 帮帮新人?

Process p = Runtime.getRuntime().exec("/system/bin/ping -c "+ pingNum + " " + m_strForNetAddress); // 10.83.50.111  m_strForNetAddress
int status = p.waitFor();

if (status == 0) {
result="success";
}
else
{
result="failed";
}
String lost = new String();
String delay = new String();
BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String str = new String();

//读出所有信息并显示
while((str=buf.readLine())!=null){
str = str + "\r\n";
tv_PingInfo.append(str);
}


运行后,status 为2, errorReader 中的字符串是“Permission denied”,手机是root过的, ADB中用ping也是可用的。
谁能给我解惑,谢谢!
...全文
326 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gokill 2015-06-26
  • 打赏
  • 举报
回复
啧啧,多谢,修改了一下,确实不报 permission denied的错误,可是报了 no such file or dir的新错误,目前我还正在研究
引用 2 楼 csdn49532 的回复:
因为你没用root权限运行命令 改成 "su \\ /system/bin/ping -c "
hailyluo 2015-06-25
  • 打赏
  • 举报
回复
因为你没用root权限运行命令 改成 "su \\ /system/bin/ping -c "
gokill 2015-06-25
  • 打赏
  • 举报
回复
有没有大神帮帮忙?

80,349

社区成员

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

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