读取/ data / data /中目录的名称

时间:2014-05-14 15:54:50

标签: android root android-file

我试着让我的应用获取设备上每个应用的名称。我能想到这样做的最好方法是将/ data / data /中每个目录的名称读入列表。我有以下代码适用于其他目录,但不适用于/ data / data /.

public void generateDirList() {
        File rootDir = new File(currentLocation);
        String[] directories = rootDir.list();
        subDirs = new ArrayList<String>();

        for(String dir : directories)
        {
            if (new File(currentLocation + File.separator + dir).isDirectory())
            {
                Log.i(TAG, dir);
                subDirs.add(dir);
            }
        }
    }

问题似乎是/ data未被识别为目录,因此rootDir.list()返回null。我的设备已植根,我的清单中有以下内容

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

我还需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

  

我正在尝试让我的应用获取设备上每个应用的名称

使用PackageManagermethods like getInstalledApplications()

  

问题似乎是/ data未被识别为目录,因此rootDir.list()返回null。

不,问题是您没有/data的读取权限。

  

我的清单中有以下内容

no such permission defined in Android

  

我还需要做些什么才能让它发挥作用?

我认为你可以使用 su 来运行 ls -R 或类似的东西。我建议你你使用PackageManager