我需要检查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。
答案 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。