Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从API 21开始,安装非市场应用程序已被弃用,有什么替代方案?_Android_Settings_Android Settings - Fatal编程技术网

Android 从API 21开始,安装非市场应用程序已被弃用,有什么替代方案?

Android 从API 21开始,安装非市场应用程序已被弃用,有什么替代方案?,android,settings,android-settings,Android,Settings,Android Settings,我需要在API 23和API 24上检查选项INSTALL_NON_MARKET_应用程序。那么,这些API的替代方案是什么呢 当前正在使用此 boolean isNonPlayAppAllowed = false; try { isNonPlayAppAllowed = Settings.Global.getInt(null, Settings.Global.INSTALL_NON_MARKET_APPS, 0) == 1;

我需要在API 23和API 24上检查选项INSTALL_NON_MARKET_应用程序。那么,这些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。

您需要使用
PackageManager
中的
canRequestPackageInstalls()
而不是文档中提到的
安装非市场应用程序

公共抽象布尔canRequestPackageInstalls()

检查是否允许调用包请求包 通过软件包安装程序安装。我们鼓励应用程序称之为 API,然后通过intent启动包安装程序 Intent.ACTION\u安装程序包。从Android O开始,用户可以 明确选择他们信任哪些外部源来安装应用程序 这个装置。如果此API返回false,则安装请求将被删除 被软件包安装程序阻止,将向用户显示一个对话框 用户可以选择启动设置以更改其首选项。一 应用程序必须以Android O或更高版本为目标,并声明权限 Manifest.permission.REQUEST_安装_包以使用此API


可能重复:可能重复使用canRequestPackageInstalls()我收到一条消息“调用需要API级别26”,我需要API 23和API 24。从API 21到24,您可以使用
设置。安全。安装非市场应用程序
看起来它在24年前是未经预测和弃用的。