从API 21开始不推荐使用INSTALL_NON_MARKET_APPS,还有什么替代方法?

时间:2019-03-22 11:23:02

标签: android settings android-settings

我需要检查API 23和API 24上的选项INSTALL_NON_MARKET_APPS。那么这些API的替代方案是什么?

当前正在使用

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

在Karan Mer回答后编辑:

使用canRequestPackageInstalls()我收到此消息“调用需要API级别26”,我需要API 23和API 24。

1 个答案:

答案 0 :(得分:1)

您需要使用canRequestPackageInstalls ()中的PackageManager而不是文档here

中提到的INSTALL_NON_MARKET_APPS
  

公共抽象布尔canRequestPackageInstalls()

     

检查是否允许调用程序包请求程序包   通过软件包安装程序进行安装。鼓励应用程序称其为   通过意图启动软件包安装程序之前的API   Intent.ACTION_INSTALL_PACKAGE。从Android O开始,用户可以   明确选择他们信任的外部来源,以在其上安装应用程序   装置。如果此API返回false,则安装请求将为   被软件包安装程序阻止,对话框将显示给   用户可以选择启动设置以更改其首选项。一个   应用程序必须以Android O或更高版本为目标并声明权限   清单.permission.REQUEST_INSTALL_PACKAGES以便使用此API。