您的位置:首页 > 移动开发 > Android开发

android7.0新特性--权限更改

2017-03-13 01:07 204 查看


系统权限更改

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

私有文件的文件权限不应再由所有者放宽,

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

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


。对于由 
DownloadManager
 公开的文件,首选的访问方式是使用
ContentResolver.openFileDescriptor()

DownloadManager 不再按文件名分享私人存储的文件。旧版应用在访问 COLUMN_LOCAL_FILENAME 时可能出现无法访问的路径。面向 Android 7.0 或更高版本的应用在尝试访问 COLUMN_LOCAL_FILENAME 时会触发
SecurityException。通过使用 DownloadManager.Request.setDestinationInExternalFilesDir() 或 DownloadManager.Request.setDestinationInExternalPublicDir() 将下载位置设置为公共位置的旧版应用仍可以访问 COLUMN_LOCAL_FILENAME 中的路径,但是我们强烈反对使用这种方法

在应用间共享文件

要在应用间共享文件,您应发送一项 
content://
 URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 
FileProvider
 类。如需了解有关权限和共享文件的详细信息,请参阅共享文件

对于面向 Android 7.0 的应用,Android 框架执行的 
StrictMode
 API 政策禁止在您的应用外部公开 
file://
 URI。如果一项包含文件
URI 的 intent 离开您的应用,则应用出现故障,并出现 
FileUriExposedException
 异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: