在Android上使用java.io.file进行root访问

时间:2016-03-04 09:17:29

标签: java android file root

我正在尝试创建一个根文件浏览器,但是,我在访问根目录时遇到了一些问题。当我尝试访问/ data时,该文件夹为空。

当我这样做时:

File file = new File("/data/");

然后请求该目录中的项目,它是空的。 (没有root访问权限)。我知道如何使用Process执行简单的root命令,但是在没有root的情况下它将不起作用。 所以我需要能在所有手机上运行的东西。

我考虑过将File用于无根设备,将ls命令用于root设备,但不知道这是否是最佳解决方案。我也可以使用带有或不带root的ls,但我想使用File

有没有办法制作根文件浏览器,同时还支持非根电话?

由于

1 个答案:

答案 0 :(得分:3)

您的建议是正确的。您无法在root设备上真正使用File来访问没有root的文件夹,因此在这种情况下您肯定必须依赖ls。基本上你可以选择在任何地方使用ls和使用隐藏细节的抽象。在后一种情况下,您将拥有一个类似File的界面,该界面将使用下方的Filels

我记得在设计自己的文件浏览器时遇到同样的问题,我选择了第二个解决方案。使用File的速度更快,因此该解决方案具有一些性能优势。我还必须编写自己的ls,因为我不想依赖系统提供的那个,因为它提供的输出没有任何保证。

我还建议阅读API,它有很多关于如何正确调用命令的有用细节。