最近工作中,遇到很多问题,关于android8.0+的问题尤其多。一直想记录下来,却没有实行。这是我的第一篇文章。首先感谢各位前辈,帮我解决了很多问题,感谢。这篇文章记录关于android8.0允许安装未知来源。
关于允许安装未知来源的代码很多,后边也会贴出,这里要强调一个问题,就是注意你的 targetSdkVersion一定要大于等于26,血的教训,因为之前有将targetSdkVersion设置为25,结果下边的haveInstallPermission始终是false,哭死啊,折腾了我一上午,明明已经允许了安装未知来源,可是下边的haveInstallPermission始终是false。后来修改了 targetSdkVersion为27,一切恢复正常。
//先判断是否有安装未知来源应用的权限 boolean haveInstallPermission = getPackageManager().canRequestPackageInstalls();
下边是完成允许打开位置来源的代码。
/**
* 对于android8.0,判断是否允许安装第三方软件。如果允许或者sdk版本小于26返回true,否则引导用户去打开允许位置来源安装
*/
private boolean bAllowunKnownSources() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
boolean haveInstallPermission;
//先判断是否有安装未知来源应用的权限
haveInstallPermission = getPackageManager().canRequestPackageInstalls();
if (!haveInstallPermission) {
LogTool.i("WebViewActivity.bAllowunKnownSources", "打开允许第三方软件");
//弹框提示用户手动打开
showAlert(this, "安装权限",

本文介绍了在Android 8.0及更高版本中遇到的允许安装未知来源应用的权限问题。作者指出,当`targetSdkVersion`小于26时,代码中的`haveInstallPermission`始终返回`false`,导致无法正常检测到已开启的未知源安装权限。通过将`targetSdkVersion`提升到27,问题得到解决。文章还承诺分享实现允许安装未知来源的代码片段。

8386

被折叠的 条评论
为什么被折叠?



