前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 8.0不能自动安装APK问题的解决方法(完美适配)

Android 8.0不能自动安装APK问题的解决方法(完美适配)

作者头像
砸漏
发布2020-11-05 15:14:24
3.1K0
发布2020-11-05 15:14:24
举报
文章被收录于专栏:恩蓝脚本

Android8.0之前

未知应用安装权限默认开启,如下图所示

8.0以下手机未知应用安装权限.png

Android8.0之后

未知应用安装权限默认关闭,且权限入口隐藏。

如何开启未知应用安装权限的入口,并设置允许安装?

在清单文件中添加权限

代码语言:javascript
复制
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/ 

判断当前是否为8.0以上系统(在这之前也可以对7.0系统进行判断,这里代码没有贴出)

代码语言:javascript
复制
if (Build.VERSION.SDK_INT  = Build.VERSION_CODES.O) {
  boolean hasInstallPermission = isHasInstallPermissionWithO(context);
  if (!hasInstallPermission) {
   startInstallPermissionSettingActivity(context);
     return;
  }
}

如果为8.0以上系统,则判断是否有 未知应用安装权限

代码语言:javascript
复制
@RequiresApi (api = Build.VERSION_CODES.O)
private boolean isHasInstallPermissionWithO(Context context){
 if (context == null){
  return false;
 }
 return context.getPackageManager().canRequestPackageInstalls();
}

如果没有 未知应用安装权限 ,则需要手动开启

代码语言:javascript
复制
/**
 * 开启设置安装未知来源应用权限界面
 * @param context
 */
@RequiresApi (api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity(Context context) {
 if (context == null){
  return;
 }
 Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
 ((Activity)context).startActivityForResult(intent,REQUEST_CODE_APP_INSTALL);
}

Activity回调(这一步根据需求来确定)

代码语言:javascript
复制
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  super.onActivityResult(requestCode, resultCode, data)
  if (resultCode== Activity.RESULT_OK ){
   when(requestCode){
    REQUEST_CODE_APP_INSTALL -  {
     onSettingCheckUpdate()
    }
   }
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档