Runtime.getRuntime().exec() 执行任何命令都会报error=13, 許可がありません
时间: 2024-03-04 12:45:11 浏览: 31
在Android设备上执行命令需要获取root权限,而有些设备可能无法获取root权限,因此会出现error=13的错误。此外,还有一些其他原因可能导致该错误,例如文件权限不足等。解决该问题的方法如下:
1. 确认设备是否已经root,如果没有root则无法执行需要root权限的命令。
2. 确认要执行的命令是否需要root权限,如果不需要则不需要使用su命令。
3. 确认要执行的命令的路径是否正确,如果路径不正确则会出现error=13的错误。
4. 确认要执行的命令的文件权限是否足够,如果权限不足则需要使用chmod命令修改文件权限。
5. 如果以上方法都无法解决问题,则可能需要更换设备或者使用其他方法执行命令。
以下是一个示例代码,演示如何使用Runtime.getRuntime().exec()执行命令:
```java
try {
Process process = Runtime.getRuntime().exec("su");
OutputStream outputStream = process.getOutputStream();
outputStream.write("ls /data\n".getBytes());
outputStream.flush();
outputStream.close();
process.waitFor(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line;
while ((line = bufferedReader.readLine()) != null) {
Log.d(TAG, line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
```