android 7.0 更新apk,Android更新apk兼容7.0和8.0
/**
* 判断版本
*/
private void checkVersionUpdate(final Context mContext, final File file) {
if (Build.VERSION.SDK_INT >= 26) {
boolean b = getPackageManager().canRequestPackageInstalls();
if (b) {
installApk(mContext, file);
} else {
//请求安装未知应用来源的权限
String[] permissions = {Manifest.permission.REQUEST_INSTALL_PACKAGES};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(permissions, 11);
}
}
} else {
installApk(mContext, file);
}
}
public void installApk(Context mContext, File file) {
Uri fileUri;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//通过FileProvider创建一个content类型的Uri用于适配7.0
fileUri = FileProvider.getUriForFile(mContext, "com.bingding.richtext.app.fileprovider", file);
} else {
fileUri = Uri.fromFile(file);
}
Intent it = new Intent();
it.setAction(Intent.ACTION_VIEW);
it.setDataAndType(fileUri, "application/vnd.android.package-archive");
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// 防止打不开应用
it.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);// 兼容7.0
startActivityForResult(it,111);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
List deniedPermissions = getDeniedPermissions(permissions, grantResults);
boolean agreeAll = deniedPermissions.isEmpty();
if (requestCode == 11) {
if (permissions.length > 0 && grantResults.length > 0 && agreeAll) {
installApk(MainActivity.this, newApkFile);
} else {
showToast("请设置允许安装应用");
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
startActivityForResult(intent, 1122);
}
}
}
记得配置清单文件
file_paths文件
标签:8.0,mContext,apk,7.0,VERSION,Intent,Build,file,permissions
来源: https://blog.csdn.net/SMITHKANG/article/details/97113711
android 7.0 更新apk,Android更新apk兼容7.0和8.0相关推荐
- Android Apk增量更新
前言 有关APK更新的技术比较多,例如:增量更新.插件式开发.热修复.RN.静默安装. 下面简单介绍一下: 什么是增量更新? 增量更新就是原有app的基础上只更新发生变化的地方,其余保持原样. 与 ...
- Android 自动检测更新,自动下载apk更新版本
注意:华为手机需要先上架华为应用市场才可以自动更新apk.其他手机可能也需要先上架 关于安卓8.0不显示下载通知问题:https://blog.csdn.net/meixi_android/artic ...
- android apk 自动更新,Android自动更新APK
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通过Service的方式(推荐使用JobService),在后台获取服务器的APK信息,然后下载到本地,通过调用系统安装 ...
- android系统签名app自动更新,【Android 进阶】Apk 使用系统签名
刚入职的时候,固件中 app 需要在源码中编译,不是很理解,为什么不使用 IDE 编译,然后 copy 到 /system/app/*,咨询导师,得到反馈 app 需要使用系统的权限 在 Androi ...
- Android 10.0 PackageManagerService(三)APK扫描-[Android取经之路]
摘要:上一节讲解了PKMS的 权限扫描,扫描/system/etc/permissions中的xml,存入相应的结构体中,供之后权限管理使用. 这一节主要来讲讲APK的扫描. 阅读本文大约需要花费15 ...
- Android 实现应用更新适配 Android O (Android 8.0)
之前写过一篇 Android 实现应用更新(适配Anndroid N),本篇主要讲解Android O(Android 8.0)上应用更新的适配问题,应用更新的完整实现请结合上一篇文章一起,文末也会给 ...
- Android开发之下载Apk安装的方法兼容Android7.0和8.0及以上
具体查看代码: 首先在清单文件配置三个权限读写权限和请求安装权限(兼容Android8.0手机)如下: <!--安装apk权限--><uses-permission android: ...
- Android 4.0.4系统下实现apk的静默安装和启动
转自http://www.linuxidc.com/Linux/2013-02/79403.htm 未亲测 最近在Android 4.0.4系统下实现apk的静默安装和启动的功能,这里和大家分享一下, ...
- 一加6点击五下出来Android10,一加6T现已推送Android 10.0公测版更新
IT之家10月10日消息 据一加社区官方消息,一加6T Android 10.0公测版现已推送,详情如下. ▲图源IT之家网友投稿 [更新日志] 系统更新至Android 10版本 全新的UI设计,轻 ...
- android pie mi 3 tab,三星的旗舰平板电脑Galaxy Tab S4正在更新到Android 9.0 Pie
看来三星已经推出Galaxy Tab S4 Android 9.0 Pie推出,期待已久的更新,购买旗舰平板电脑的消费者将很快享受.8月份在市场上首次亮相的平板仍在运行Android 8.1 Oreo ...
最新文章
- Selenium查询10010账户余额——python篇
- ArcEngine中画点画线画面
- LeetCode_每日一题今日份_343.整除拆分
- 【Tomcat】Tomcat性能分析
- 攻击防护手段_如何防护ddos流量攻击?
- 如何判断国际会议是否被EI收录
- Springcloud服务如何在Eureka安全优雅的下线
- pycharm 修改新建文件时的头部模板(默认为__author__='...')
- 同步异步和阻塞3-同步阻塞
- 【收藏】夜光遥感数据下载网址及方式
- ubuntu配置搜狗输入法
- WinDirStat – 硬盘空间都用在哪里了
- Mugeda(木疙瘩)H5案例课—世界名画抖抖抖起来了-岑远科-专题视频课程
- matlab向量乘法要加.,matlab中的矩阵与向量运算
- 联想笔记本系统还原要如何操作
- 0xC0000005:读取位置 0x00000004时发生访问冲突。
- 彻底卸载360画报(流氓屏保软件)---亲测有效
- XMPP 客户端 Smack Android开发基础
- 年底了,清空自己,让心归零!
- 鼠标dpi设置多少合适呢?查看鼠标dpi的方法
热门文章
- C++中的空指针和void * 指针
- 小小聊天室,慢慢的回忆啊!(TCP 通信实现)
- Navicat日期时间格式
- MySQL删除同一个字段的多条记录
- php catch e是什么,php try catch 中的catch(Exception $e) 中的Exception 有什么作用?
- Tomcat maven 插件启动出现tomcat\conf\tomcat-users.xml cannot be read异常解决方法
- org.springframework.dao.InvalidDataAccessApiUsageException: Write operations
- 第四届蓝桥杯省赛javaB组试题解析
- 直接在Dao层进行测试的问题
- Java IO流之打印流与标准流