Чтение имен каталогов в /data/data/
Я пытаюсь получить свое приложение, чтобы получить название каждого приложения на устройстве. Лучший способ сделать это - прочитать имя каждого каталога в / 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()
возвращает ноль. Мое устройство рутировано, и у меня есть следующее в моем манифесте
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
Что еще я должен сделать, чтобы заставить это работать?
1 ответ
Я пытаюсь получить свое приложение, чтобы получить название каждого приложения на устройстве
использование PackageManager
и методы, такие какgetInstalledApplications()
,
Кажется, проблема в том, что /data не распознается как каталог, поэтому rootDir.list() возвращает ноль.
Нет, проблема в том, что у вас нет прав на чтение /data
,
У меня есть следующее в моем манифесте
В Android нет такого разрешения.
Что еще я должен сделать, чтобы заставить это работать?
Я предполагаю, что вы можете использоватьsu
бежатьls -R
или что-то типа того. Я предлагаю вам использовать PackageManager
,