Программно определить, разрешена ли установка из неизвестных источников

Мне нужно выяснить, позволяет ли текущее устройство Android устанавливать приложения из других источников, кроме рынка. Этот параметр отображается в пользовательском интерфейсе настроек в разделе Приложения с именем "Неизвестные источники".

Настройки в основном позволяют загружать и устанавливать APK, которые не были созданы на рынке приложений Google.

Как проверить, включен или выключен этот флаг с помощью кода?

Ответы

Ответ 1

Этот параметр называется INSTALL_NON_MARKET_APP" (щелкните для документации).

(Я в основном уже набрал вопрос, когда нашел ответ, спрятанный внутри документации, с другим именем, поэтому я решил опубликовать вопрос и ответить на себя, поскольку это не тривиально.)

Ответ 2

Вот код, который использует указанный параметр:

boolean isNonPlayAppAllowed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1;

Также показано, что настройка для пользователя может мне полезна:

if (!isNonPlayAppAllowed) {
    startActivity(new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS));
}