首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rooted不会以编程方式执行所有命令

Rooted不会以编程方式执行所有命令
EN

Stack Overflow用户
提问于 2014-04-29 05:03:29
回答 1查看 497关注 0票数 0

下面的代码成功地重启了Android设备:

代码语言:javascript
复制
    Process p = Runtime.getRuntime().exec("su");

    OutputStream outputStream = p.getOutputStream();
    InputStream inputStream = p.getInputStream();
    DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

    dataOutputStream.writeBytes("reboot");
    dataOutputStream.flush();
    dataOutputStream.close();
    outputStream.close();
            p.waitFor();

此代码用于停止当前正在运行的应用程序。但它什么也做不了。

代码语言:javascript
复制
        Process p = Runtime.getRuntime().exec("su");

        OutputStream outputStream = p.getOutputStream();
        InputStream inputStream = p.getInputStream();
        DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

        dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX");
        dataOutputStream.flush();
        dataOutputStream.close();
        outputStream.close();
        p.waitFor();

所有命令都通过ADB Shell工作,并且设备具有"su“脚本。有没有可以排除故障的流程?我该怎么办?

当运行dataOutputStream.flush()时,它给出了这个错误:

04-29 01:56:05.057: W/System.err(6969):java.io.SyncFailedException: fsync失败: EINVAL (无效参数)

EN

回答 1

Stack Overflow用户

发布于 2014-12-25 15:36:02

使用try-catch环绕写刷新

代码语言:javascript
复制
try{
 dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX");
 dataOutputStream.flush();
}catch(IOException e){
}

不影响exec结果!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23351143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档