我正在开发一个需要 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;
}
}
}