专栏名称: Android技术之家
主要分享Android相关技术文章、移动互联网的相关产品和资讯。关注你将学习到更多基础以及框架相关的知识,为您的工作助力!
今天看啥  ›  专栏  ›  Android技术之家

记一个 Android 14 适配引发的Android 存储权限问题

Android技术之家  · 公众号  ·  · 2024-05-08 08:48
    

主要观点总结

本文介绍了关于Android媒体权限的相关问题,包括适配不同Android版本中的媒体权限变更、解决特定bug的方法等。文章首先描述了bug的背景和日志信息,然后详细阐述了Android不同版本中的媒体权限变化,包括文件存储方式、动态申请权限、作用域存储等概念。接着介绍了特定权限如MANAGE_EXTERNAL_STORAGE的作用和使用方法。最后,结合bug日志信息,分析了问题的原因,并给出了两种解决方案。

关键观点总结

关键观点1: 文章介绍了Android媒体权限的背景和变更

包括适配不同Android版本中的媒体权限变更、文件存储方式、动态申请权限、作用域存储等概念。

关键观点2: 特定权限如MANAGE_EXTERNAL_STORAGE的介绍和使用方法

MANAGE_EXTERNAL_STORAGE权限用于管理所有共享存储内容,包括非媒体类型的文件。使用时需要在AndroidManifest.xml中声明,并通过特定操作引导用户前往设置页面授予权限。

关键观点3: bug的原因分析

根据日志信息分析了Mutation of _data不允许的原因,并指出与targetSdk版本、MediaStore.MediaColumns.DATA列以及用户是否授予MANAGE_EXTERNAL_STORAGE权限有关。

关键观点4: 解决方案的提出

针对问题,提出了两种解决方案:申请MANAGE_EXTERNAL_STORAGE权限或者去掉values中MediaStore.Images.Media.DATA的更新。


文章预览

出处: https://www.cnblogs.com/joy99/p/17809113.html 一、bug 背景 项目中有下面这样一段代码,在 Android T 版本运行正常,现在适配到 Android U 上之后,运行时 crash 了。。。。 ... values.put(MediaStore.Images.Media.DATA, file.absolutePath) values.put(MediaStore.Images.Media.DISPLAY_NAME, file.name) ... resolver.update(uri, values, null, null) 大概的错误信息如下: 因为涉及到 Android 的媒体权限,这篇文章主要是针对 Android 媒体权限做的一些总结。 二、Android 数据存储 随着 Android 版本迭代,官方也在不断优化 Android 数据存储方式,其中涉及到数据存储的性能、安全性、用户隐私等诸多因素。 如今,最新的官方文档的介绍如下: Android 使用的文件系统提供了如下几种保存应用数据的选项: 应用专属存储空间:  存储仅供应用使用的文件,可以存储到内部存储卷中的专属目录或外部存储空间中的其他 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览