try {
Runtime rt = Runtime.getRuntime();
Process pcs = rt.exec("ls -l /data");
BufferedReader br = new BufferedReader(new InputStreamReader(pcs
.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
Log.e("line","line="+line);
}
br.close();
pcs.waitFor();
int ret = pcs.exitValue();
Log.e("ret","ret="+ret);
} catch (Exception e) {
Log.e("Exception", "Exception", e);
}
只打印“ret = 0”,如何打印正确的路径?
答案 0 :(得分:4)
Android保护其内部目录。您只能访问/data/data/your_package
下的目录。我相信普通用户对普通设备上的Read
目录没有/data
权限。
答案 1 :(得分:1)
数据文件夹在设备上不可访问。您无法通过adb访问无根电话的数据文件夹。您可以访问模拟器或有根电话的数据文件夹。
答案 2 :(得分:0)
您是否尝试使用自己的应用程序,而不是通过生成其他进程(例如Runtime.exec())
File dataDir = new File("/data");
String[] files = dataDir.list();
for (int i = 0 ; i < files.length ; i++ ) {
Log.d(TAG, "File: "+files[i]);
}
此外,我会查看不同的读取权限,也许还有另一种方法可以通过ContentProviders获取您正在寻找的数据。
答案 3 :(得分:-2)
如果您不想从java代码访问/ data文件夹,而是从PC控制台访问 - 您可以使用adb shell
命令。它没有任何限制。
记得要运行模拟器,或者在运行之前通过USB连接手机