gpt4 book ai didi

java - 在 Android 上用 root 调用 'ls' 什么都不返回,应用程序挂起

转载 作者:行者123 更新时间:2023-11-30 09:24:31 26 4
gpt4 key购买 nike

我正在开发一个需要 root 权限的 Android 应用程序。它使用 root 来访问一些内部存储器的东西,然后我在一个目录上调用 ls。然后我从中读取,如果有数据,效果很好,但如果目录为空,应用程序就会挂起。有解决这个问题的好方法吗?

这是代码

    final Runtime runtime = Runtime.getRuntime();
try {
// Perform su to get root privileges
Process p = runtime.exec("su");
DataOutputStream output = new DataOutputStream(p.getOutputStream());
output.writeBytes("ls " + directoryPath + "\n");
output.flush();
InputStream stdout = p.getInputStream();
byte[] buffer = new byte[1024];
int read;
String out = new String();
while(true){
//If ls found no files it hangs on this line
read = stdout.read(buffer);
out += new String(buffer, 0, read);
if(read < 1024){
break;
}
}
}

最佳答案

以下对我有用:看我的process helper然后例如

Pair<Integer, String> ret = ProcessHelper.runCmd(true, "su", "-c", "ls -l");

关于java - 在 Android 上用 root 调用 'ls' 什么都不返回,应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15668688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com