温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 8.0中不跳转应用安装页面如何解决

发布时间:2021-06-09 17:11:48 来源:亿速云 阅读:675 作者:Leah 栏目:移动开发

本篇文章给大家分享的是有关Android 8.0中不跳转应用安装页面如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1.在AndroidManifest.xml文件中,添加REQUEST_INSTALL_PACKAGES权限

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

2.在打开安装包的代码中添加**兼容Android 8.0**的代码。

/** 
  * 打开安装包 
  * 
  * @param mContext 
  * @param fileUri 
  */ 
  public void openAPKFile(Activity mContext, String fileUri) { 
    DataEmbeddingUtil.dataEmbeddingAPPUpdate(fileUri); 
    // 核心是下面几句代码 
    if (null != fileUri) { 
      try { 
        Intent intent = new Intent(Intent.ACTION_VIEW); 
        File apkFile = new File(fileUri); 
        //兼容7.0 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
          intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
          Uri contentUri = FileProvider.getUriForFile(mContext, mContext.getPackageName() + ".fileProvider", apkFile); 
          intent.setDataAndType(contentUri, "application/vnd.android.package-archive"); 
          //兼容8.0 
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
            boolean hasInstallPermission = mContext.getPackageManager().canRequestPackageInstalls(); 
            if (!hasInstallPermission) { 
              ToastUtil.makeText(MyApplication.getContext(), MyApplication.getContext().getString(R.string.string_install_unknow_apk_note), false); 
              startInstallPermissionSettingActivity(); 
              return; 
            } 
          } 
        } else { 
          intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); 
          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        } 
        if (mContext.getPackageManager().queryIntentActivities(intent, 0).size() > 0) { 
          mContext.startActivity(intent); 
        } 
      } catch (Throwable e) { 
        e.printStackTrace(); 
        DataEmbeddingUtil.dataEmbeddingAPPUpdate(e.toString()); 
        CommonUtils.makeEventToast(MyApplication.getContext(), MyApplication.getContext().getString(R.string.download_hint), false); 
      } 
    } 
  } 
 
 
  /** 
  * 跳转到设置-允许安装未知来源-页面 
  */ 
  @RequiresApi(api = Build.VERSION_CODES.O) 
  private void startInstallPermissionSettingActivity() { 
    //注意这个是8.0新API 
    Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES); 
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    mContext.startActivity(intent); 
  }

以上就是Android 8.0中不跳转应用安装页面如何解决,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI