博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android7.0 应用内升级
阅读量:6817 次
发布时间:2019-06-26

本文共 1809 字,大约阅读时间需要 6 分钟。

Android7.0应用内升级

最近线上项目在7.0机器上出现应用内升级失败,原来是由于Android7.0权限问题导致。

如果项目的 targetSdkVersion>=24 在处理应用内升级的时候需要兼容7.0。

1、创建file_paths.xml文件

  在res下创建xml文件夹,然后在xml文件夹下创建file_paths.xml文件。

  

1 
2
3
4
7
8

说明:apk是下载在Environment.getExternalStorageDirectory()路径下的。

   external-path代表 Environment.getExternalStorageDirectory()目录。

   name:必须有。为Environment.getExternalStorageDirectory()的别名

   path:可以为空。空代表Environment.getExternalStorageDirectory()目录下所有的文件夹和文件。

2、配置AndroidManifest.xml文件添加provider标签

1         
7
10

3、安装apk的方法进行版本判断:

  

1     public void installApk(Context context, File file) { 2         if (!file.exists()) { 3             ToastUtil.show(mContext, "安装失败"); 4             return; 5         } 6         Intent intent = new Intent(); 7         intent.setAction(android.content.Intent.ACTION_VIEW);       //版本>=24 8         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
              //参数说明:        context:上下文        authority:必须和provider中声明的android:authorities值一致 file:所下载的apk文件
9             Uri contentUri = FileProvider.getUriForFile(context, "com.ntjr.std.provider", file);10             intent.setDataAndType(contentUri, "application/vnd.android.package-archive");11             intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);12             intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);13         } else {14             Uri uri = Uri.fromFile(file);15             intent.setDataAndType(uri, "application/vnd.android.package-archive");16         }17         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);18         context.startActivity(intent);19     }

要注意使用的是 addFlags还是setFlags。setFlags会清除掉上面所设置的flag。

 

转载于:https://www.cnblogs.com/zhaobingqing/p/6951439.html

你可能感兴趣的文章
Storm系列(六)storm和kafka集成
查看>>
东南亚的招聘骗局,程序员请注意!
查看>>
Android 获得View宽高的几种方式
查看>>
iOS正则表达式
查看>>
关于javascript的this指向问题
查看>>
Promise的理解和用法
查看>>
java B2B2C Springboot电子商城系统-高可用的服务注册中心
查看>>
Dubbo的总体架构
查看>>
Spring Cloud微服务架构代码结构详细讲解
查看>>
以太经典硬分叉:矿工欢喜、投资者欢庆、社区高兴的“三赢”之举
查看>>
我的友情链接
查看>>
LVS启(禁)用成员
查看>>
innobackupex 备份报错
查看>>
2016 IT 运维工作计划及学习
查看>>
将一个数的二进制位模式从左到右翻转并输出
查看>>
jQuery学习之jQuery Ajax用法详解
查看>>
关于JEPLUS软件介绍——JEPLUS软件快速开发平台
查看>>
动态增加UIView到当前视图中
查看>>
怎么能看透信封
查看>>
css正方形照片墙
查看>>