Чтение имен каталогов в /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,

Другие вопросы по тегам