我试着让我的应用获取设备上每个应用的名称。我能想到这样做的最好方法是将/ 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" />
我还需要做些什么才能让它发挥作用?
答案 0 :(得分:1)
我正在尝试让我的应用获取设备上每个应用的名称
使用PackageManager
和methods like getInstalledApplications()
。
问题似乎是/ data未被识别为目录,因此rootDir.list()返回null。
不,问题是您没有/data
的读取权限。
我的清单中有以下内容
有no such permission defined in Android。
我还需要做些什么才能让它发挥作用?
我认为你可以使用 我建议你你使用su
来运行 ls -R
或类似的东西。PackageManager
。