以编程方式查找是否允许从未知来源安装

Mik*_*kle 13 settings android

我需要查看当前的Android设备是否允许从市场以外的来源安装应用程序.此选项显示在名为"未知来源"的应用程序下的设置UI中.

该设置基本上允许您下载和安装不是源自Google应用市场的APK.

如何使用代码检查此标志是打开还是关闭?

MSq*_*are 23

以下是使用上述设置的代码:

boolean isNonPlayAppAllowed = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS) == 1;
Run Code Online (Sandbox Code Playgroud)

同时向用户显示设置可能对我有用:

if (!isNonPlayAppAllowed) {
    startActivity(new Intent(android.provider.Settings.ACTION_SECURITY_SETTINGS));
}
Run Code Online (Sandbox Code Playgroud)

  • @HusnainAslam 这也困扰着我,但我发现了 Commonsware 的这份报告(https://commonsware.com/blog/2014/10/17/random-musings-lollipop-sdk.html),他在 API 级别 21 上说,不推荐使用 Settings.Secure.INSTALL_NON_MARKET_APPS,所以我再次使用它。(注意这个类,它来自 Settings.Secure,而不是 Settings.Global) (2认同)

Mik*_*kle 11

此设置称为" INSTALL_NON_MARKET_APP"(单击以获取文档).

(当我发现答案隐藏在文档中时,我基本上已经输入了问题,并使用不同的名称,因此我决定发布问题和自我回答,因为这不是微不足道的.)