android app安装apk,Android App更新安装APK

概要 一般地, Android App 都会被要求在App内进行软件更新提示, 让用户下载apk文件, 然后更新安装新版本, 一般过程如下: 检测是否有新版本 下载新版本app apk文件 安装新的apk 通常我们将apk文件存放在外部存储

概要

一般地, Android App 都会被要求在App内进行软件更新提示, 让用户下载apk文件, 然后更新安装新版本, 一般过程如下:

检测是否有新版本

下载新版本app apk文件

安装新的apk

通常我们将apk文件存放在外部存储上.然后将 文件路径传递给系统, 进行apk的安装.

文件路径传递过程

安装代码如下:

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(newApk), "application/vnd.android.package-archive");

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);

通常情况下这样没问题, 但是在 Android 7.0 系统上会出现异常 FileUriExposedException

, 这是因为在7.0 系统上发生的权限变更:

系统权限更改

为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问(0700)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用:

私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE 和/或 MODE_WORLD_WRITEABLE 而进行的此类尝试将触发 SecurityException。

注:迄今为止,这种限制尚不能完全执行。应用仍可能使用原生 API 或 File API 来修改它们的私有目录权限。但是,我们强烈反对放宽私有目录的权限。

传递软件包网域外的 file:// URI 可能给接收器留下无法访问的路径。因此,尝试传递 file:// URI 会触发 FileUriExposedException。分享私有文

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754591935a5179203.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信