Android: queryContentProviders больше не работает на устройстве пользователя - PullRequest
0 голосов
/ 10 ноября 2019

Я использую этот код для получения списка установленных пакетов приложений на устройстве:

@NonNull
public ArrayList<String> getInstalledApps() {

    // Create an empty array list :
    ArrayList<String> apps = new ArrayList<>();

    try {

        // Load the E-walk plugins names :
        List<ProviderInfo> allProviders = getPackageManager().queryContentProviders(null, 0, 0);

        if(allProviders != null) {

            for(ProviderInfo provider : allProviders) {

                if(!apps.contains(provider.packageName)) apps.add(provider.packageName);
            }
        }
    }
    catch(Exception e) { e.printStackTrace(); }

    return apps;
}

Он работает уже несколько лет в производстве. Недавно пользователь сообщил, что он больше не работает на его устройстве, хотя раньше он работал.

Я также использую запрос getContentResolver (). Для взаимодействия с другими приложениями, и это работает на устройстве этого пользователя. .

Что-то недавно изменилось с queryContentProviders? Я не нашел ничего особенного в документе. Если нет, то я предполагаю, что производитель устройства опубликовал обновление, нарушающее эту функцию. Есть ли альтернатива?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...