INSTALL_NON_MARKET_APPS устарела с API 21, что является альтернативой? - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно проверить опцию INSTALL_NON_MARKET_APPS в API 23 и API 24. Так что же является альтернативой для этих API?

В настоящее время используется это

boolean isNonPlayAppAllowed = false;
            try {
                isNonPlayAppAllowed = Settings.Global.getInt(null, Settings.Global.INSTALL_NON_MARKET_APPS, 0) == 1;
            } catch (Exception e) {
                e.printStackTrace();
            }

Отредактировано после ответа Каран Мера:

Использование canRequestPackageInstalls () Я получаю это сообщение "Для вызова требуется API уровня 26", мне нужно для API 23 и API 24.

1 Ответ

1 голос
/ 22 марта 2019

Вам необходимо использовать canRequestPackageInstalls () из PackageManager вместо INSTALL_NON_MARKET_APPS, как указано в документации здесь

public abstract boolean canRequestPackageInstalls ()

Проверяет, разрешено ли вызывающему пакету запрашивать пакет устанавливается через установщик пакета. Приложениям рекомендуется называть это API перед запуском установщика пакета через намерение Intent.ACTION_INSTALL_PACKAGE. Начиная с Android O, пользователь может явно выбрать, какие внешние источники они доверяют для установки приложений на Устройство. Если этот API возвращает false, запрос на установку будет заблокирован установщиком пакета, и диалоговое окно будет показано Пользователь с возможностью запуска настроек, чтобы изменить свои предпочтения. приложение должно быть нацелено на Android O или выше и объявить разрешение Manifest.permission.REQUEST_INSTALL_PACKAGES для использования этого API.

...