Android安装apk文件并适配Android 7.0详解

首先在AndroidManifest.xml文件,activity同级节点注册provider:

          

将apk文件下载到此路径:

String cachePath = (            getExternalFilesDir("upgrade_apk") +                File.separator +                getPackageName() +                ".apk");

在res目录xml文件夹下创建名为file_paths的文件:upgrade_apk代表上面保存路径的文件夹名称,可随意更改,相同即可。

<?xml version="1.0" encoding="utf-8"?>  

最后编写代码,区分不同Android系统版本号,安装apk(注意:【com.apkinstall.demo】要替换自己应用的包名)

 /**       * 安装 apk 文件       *       * @param apkFile       */      public void installApk(File apkFile) {        Intent installApkIntent = new Intent();        installApkIntent.setAction(Intent.ACTION_VIEW);        installApkIntent.addCategory(Intent.CATEGORY_DEFAULT);        installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {          installApkIntent.setDataAndType(FileProvider.getUriForFile(getApplicationContext(), "com.apkinstall.demo.file_provider", apkFile), "application/vnd.android.package-archive");          installApkIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);        } else {          installApkIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");        }        if (getPackageManager().queryIntentActivities(installApkIntent, 0).size() > 0) {          startActivity(installApkIntent);        }      }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多相关文章

  1. Android(安卓)利用Sharp样式设置文本框EditText圆角形状
  2. adt20新建项目Android(安卓)Support library not installed问题
  3. 多平台部署
  4. android linux 基础知识总结
  5. cocos2d-x-3.1在eclipse中的环境搭建
  6. Android(安卓)列表数据写入到本地Excel文件(包括图片)
  7. Android的res目录
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. Lint found fatal errors while assembli
  2. Android(安卓)Retrofit 2.0自定义JSONObj
  3. Android Volley 详解
  4. Android 动画标签——set
  5. android get请求数据
  6. android之监听手机来电状态
  7. Linux ubuntu14.04 LTS 配置 android stu
  8. android apk 升级代码
  9. 如何在Mac/Linux上设置android环境变量
  10. Android(安卓)进入后台触发的事件,一般用