首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过存储访问框架提供权限后,无法访问SD卡

存储访问框架(Storage Access Framework,SAF)是Android操作系统提供的一种机制,用于管理应用程序对设备存储的访问权限。通过SAF,应用程序可以请求用户授权来访问设备上的文件和目录,包括SD卡。

然而,有时候在使用SAF后,仍然可能出现无法访问SD卡的问题。这可能是由于以下原因导致的:

  1. 用户未授权:SAF需要用户授权才能访问设备存储。如果用户未授权应用程序访问SD卡,那么应用程序将无法访问SD卡上的文件。解决方法是在应用程序中请求用户授权,可以通过使用SAF提供的Intent.ACTION_OPEN_DOCUMENT_TREE来打开文件选择器,让用户选择SD卡并授权应用程序访问。
  2. 权限不正确:即使用户已经授权应用程序访问SD卡,但应用程序可能没有正确声明所需的权限。在AndroidManifest.xml文件中,应用程序需要声明READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,以便能够读取和写入SD卡上的文件。
  3. 设备不支持:某些设备可能不支持SAF或者存在特定的限制。这可能是由于设备的操作系统版本较低或者设备制造商对SAF进行了修改。在这种情况下,无法通过SAF来访问SD卡,可以考虑使用其他的存储访问方式,如使用File类来直接操作文件。

总结起来,如果通过存储访问框架提供权限后无法访问SD卡,可以检查是否已经获得用户授权、是否声明了正确的权限,并考虑设备是否支持SAF。如果问题仍然存在,可以尝试使用其他的存储访问方式或者查阅相关文档和社区来获取更多帮助。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云对象存储(COS):提供高可靠、低成本、安全可扩展的云端存储服务,适用于各种场景下的数据存储和处理需求。详细信息请参考:https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android文件各种存储路径的比较

需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对路径也是变化的,所以建议当数据存储到这个目录的时候,用相对路径 系统提供访问此路径文件的方法是:...只有手机系统使用的是虚拟外部存储(虚拟SD,现在绝大多数的手机,都不用外挂物理SD了)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD)则不会自动删除该目录...) 注:当其他应用拥有SD读写权限的时候,可以访问该目录下的文件 4、File externalFilesDir = context.getExternalFilesDir(null); 应用外部存储空间...注:当其他应用拥有SD读写权限的时候,可以访问该目录下的文件 5、File externalStorageDirectory = Environment.getExternalStorageDirectory...,或者已经被移除状态,或者存储空间损坏无法访问等问题。

2.9K10

Android 10 和Android 11的适配

一、 私有目录下资源访问 存在这样一个场景:我们要分享一张图片到qq或者微信,首先第一步是要是得到这个bitmap(通过本地生成或者网络加载),然后存储到本地sd上,最后把存储的图片的绝对路径传给qq...在以上的场景中,涉及到了这些关键点: 把图片存储sd 把绝对路径path传递给qq或者微信 1.1 直接访问sd的根目录 通过FileOutPutStream来完成,在Android10以下都没问题...因此,我们需要修改存储路径为scope的App-specific目录。 1.2 改为App-specific私有目录 该目录自己访问不需要权限,如果第三方访问需要权限!...1.3 分享原理总结 分享的本质就是把图片路径给qq或微信访问,让他们能够访问到我们的图片。分区之前是存储在外部sd,都没有问题。...完美避开无法访问公共目录的坑!!! 在Android11上 以上标志会自动失效。因此,应用存储的东西还在放在App-specific目录下。分享私有目录可以通过fileprovider 方式适配。

1.4K41
  • Android 11 中的存储机制更新

    在 Google Play 上发布的大部分应用都会请求 (READ_EXTERNAL_STORAGE) 存储权限,来做一些诸如在 SD 存储文件或者读取多媒体文件等常规操作。...在 Android 10 中,我们调整了存储权限的工作方式,仅为应用提供其所需的访问权限。这也是在鼓励应用在指定目录下进行文件存储以限制文件混乱。当应用被卸载,这些相关的目录也会被删除。...在 Android 10 里唯一一种访问其他应用创建的非媒体文件的途径是使用存储访问框架 (Storage Access Framework) 提供的文档选择器。...在 Android 11 中,将不再允许用户授权访问 Downloads 的根目录、每个可用 SD 的根目录以及其它应用的目录。...但是获得这个权限的应用还是无法访问其他应用的应用专属目录 (app-specific directory),无论是外部存储还是内部存储。 我们希望继续允许一些确实有广泛访问外部存储文件需求的应用。

    3.1K11

    Android7.0FileProvider升级安装包导致FileUriExposedException的异常

    传递软件包网域外的 file://URI 可能给接收器留下无法访问的路径。因此,尝试传递 file://URI会触发 FileUriExposedException。...fileerrorurl.png 出问题就开始解决吧 1.第一步当然你要访问文件是要权限的,这个在Android6.0可要动态授权哦,这里不要忘了android.permission.REQUEST_INSTALL_PACKAGES...--外部存储又分为SD和扩展内存,此处外部存储空间对应为内置SD内存--> 表示应用程序内部SD存储目录下的 cache/ 目录,共享的完整路径为/storage/emulated/0/Android/data/com.bo.view...context) { //此处file应为apk下载的完整路径文件,这里下载在了外部存储的私有缓存文件夹下, // 你可以选择其他存储地址如:外置SD等,但是要注意与

    2.6K31

    Windows无法完成格式化怎么办?5种解决方法

    我们平时使用电脑的时候,经常会遇到需要格式化磁盘的情况,比如格式化硬盘、U盘、SD存储设备。...在磁盘管理器或是分区管理工具中,该设备可能会出现一些异常状态,甚至是无法访问或数据无法读取。Windows无法完成格式化是怎么回事?...磁盘被写保护:有些U盘、内存有写保护开关,如果磁盘被设置成只读模式,希望将无法进行写入操作,所以就无法将其格式化。操作系统权限限制:当前用户登录的账号没有足够的权限存储设备进行格式化操作。...数据恢复软件可以直接扫描无法访问的磁盘分区,通过识别磁盘底层数据,可以将丢失的数据显示出来。整个数据恢复过程不会对磁盘进行任何改动,不影响丢失的数据,很安全。步骤如下:1....答:如果尝试了本文的解决方法依然无法完成格式化,可能是SD设备本身存在硬件故障,建议联系存储的售后进行进一步的检测和维修。问题4:U盘插上就让格式化是坏了吗?不一定。

    78910

    android之文件存储目录介

    android持久化方式 Android手机存储分为:内部存储和外部储存。 在Android4.4以前,手机机身存储就叫内部存储,插入的SD就是外部存储。...但是在Android4.4以后这两个存储的定义又有了一些些变化,新的手机不再有外插SD的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上...对于这个内部目录,用户是无法访问的,除非获取root权限。 ? image.png 通常对应内部存储的路径为 data/data/packagename/files。...注意:/data/user/0/ 等同于 /data/data/ 访问代码实例: context.getDir(String name,int mode) 外部储存 外部存储需要通过context来获取...image.png 外部存储并不总是可用的,因为外部存储可以移除(早期设备)或者作为USB存储设备连接到PC,访问前必须检查是否挂载(mounted)。 ?

    76040

    Android文件系统整理

    1、App 私有目录 App 的私有目录指其他应用可以访问当前应用该目录下的数据,应用卸载也会随之删除。 公共目录:外部可以自由访问,应用删除这部分存储的数据不会删除。...传统上这是一张 SD ,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。...外部公共目录可以通过以下函数获取 Environment.getExternalStorageState() // SD 状态 Environment.getExternalStorageDirectory...对于这些情况,Android 提供了一种名为“所有文件访问权限”的特殊应用访问权限。 例如,防病毒应用的主要场景可能是需要定期扫描不同目录中的许多文件。...获得此权限的应用仍然无法访问属于其他应用的内部存储空间,因为这些目录在存储卷上显示为 Android/data/ 的子目录。

    81630

    Android 存储概览

    存储区 Android 一开始就将存储区分为内部存储和外部存储,对应手机自带的存储和可插拔的 sd (可类比于 PC 的硬盘和 U盘)。...这一操作,使得原本内部存储和外部存储的特性和使用场景得以延续。 当然,如果在 4.4 系统及以上的手机上插了 sd ,那么 sd 也属于外部存储。...比如照片选择器,它提供了一个可浏览界面,为用户提供了一种安全的内置授权方式,让用户可以向应用授予限于所选图片和视频的访问权限,而非整个媒体库的访问权限,该权限保留至设备重启或应用停止运行。...其它文件 自 Android 4.4(API 19)始,官方提供存储访问框架,便于应用与外部存储卷和云端存储空间在内的文档提供器互动。...这些文件存储在应用专属目录和媒体库之外,且在应用卸载仍会保留在设备上。

    8510

    【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

    权限 ---- Android 逆向中使用的权限 : android.permission.SET_DEBUG_APP : 调试程序 , 应用有该权限 , 可以指定调试相关的程序 ; android.permission.WRITE_EXTERNAL_STORAGE...: 向 SD 写出数据 ; android.permission.WRITE_SETTINGS : 写出系统设置 ; android.permission.WRITE_SECURE_SETTINGS...权限 : 仅次于 root 权限 ; shell 权限 : 就是 adb shell 进入对应的权限 , 其比 用户权限访问的文件范围要大一些 , 但是很多目录都无法访问 ; usr 权限 :...应用权限 , 每个应用都会生成一个 用户 ; 只有 /data/data/包名/ 目录 和 外部 SD 权限 , 没有其它目录的访问权限 ; 跨应用访问数据必须使用特殊手段 ; sdcard_rw...权限 : 只限于 SD 目录 , 只有读写权限 , 没有执行权限 ; 该目录的用户虽然属于 root 用户 , 但是文件所在的分组是 sdcard_rw , 该分组没有执行权限 , 只能进行读写操作

    75600

    【Android 文件管理】应用可访问存储空间 ( 存储空间分类 | 存储空间访问权限 | 分区存储 )

    文章目录 一、存储空间分类 二、存储空间访问权限 三、分区存储 四、相关文档资料 一、存储空间分类 ---- 在 Android 9( API 级别 28 ) 及以下版本中 , Android 文件存储空间分为两类..., 包括媒体 , 文档 , 下载 等目录 ; 二、存储空间访问权限 ---- 内部存储空间访问不需要权限 ; 在 Android 9( API 级别28 ) 及以下版本中 访问外部存储需要使用 READ_EXTERNAL_STORAGE..., 其它外置存储空间的目录 , 无法访问 ; 三、分区存储 ---- 在 Android 9( API 级别 28 ) 及以下版本中 , 开发者可以任意在外置存储目录中创建文件 , 进行任何读写操作 ,..., 在外置存储空间中写入文件 , 卸载系统会帮你删除相关文件 ; 关于分区存储 : 目标平台为 Android 9( API 级别 28 ) 及以下版本 , 不会启用分区存储 ; 目标平台为...Android 10( API 级别 29 ) 及以上版本 , 会自动开启分区存储 , 这时候需要进行兼容开发 ; 一旦启用了分区存储 , 就无法访问 SD 中创建的目录或文件 , 只能访问外部存储空间的应用专属目录

    2.4K30

    保存文件到手机内存

    pansz: Android 对每个应用程序定义了私有的存储区域,这个区域通过 Linux 的文件系统权限控制,仅仅应用自己可以随意读写,问其他应用无法访问不属于自己的私有数据。...私有目录的路径可以通过 Context->getFilesDir() 来获取。 除了私有存储区域以外,SD 上都是公共区域,所有人可读写。...知乎:为什么 Android 4.4 KitKat 限制第三方应用的 SD 读写权限?...另外说一下,SD 上的指定目录是这样获取的: 1,程序相关的 内置存储目录,这个目录位于内置 flash,应用程序可以随意读写: getFilesDir(); 2,程序相关的 SD 外部存储目录,这个目录位于...SD ,应用程序可以随意读写: getExternalFilesDir(null); 3,SD 公共目录,这些目录仍然可以访问,不受权限限制: Environment.getExternalStoragePublicDirectory

    97740

    Android-文件存储目录

    ,新的手机不再有外插SD的概念,采取了内置闪存(eMMC、UFS等)的方式,所以内部存储和外部存储在新的Android手机上已经在同一个硬件上了。...手机机身自带的存储也是外部存储,如果再插入SD的话也叫外部存储,不过现在也几乎没有在采用扩展内存这种方式来增加手机存储空间了,手机自带的外部存储足矣,除此以外还有一种公有目录存储,它返回的目录全都是共享的公有目录...当一个应用卸载之后,内部存储中的这些文件也被删除。对于这个内部目录,用户是无法访问的,除非获取root权限。...对于公有目录上面的文件路径需要通过Environment获取 3.1 getExternalStorageDirectory() //SD外部存储路径 String externalStoragePath...当然除了SD上面的数据,SD上面的数据当app卸载之后还会存在的。

    3.6K21

    【Android 内存优化】Android 原生 API 图片压缩代码示例 ( PNG 格式压缩 | JPEG 格式压缩 | WEBP 格式压缩 | 动态权限申请 | Android10 存储策略 )

    , 存储SD 中 , 这里 涉及到了在 Android 10 系统中动态申请权限 , 设置旧的存储访问策略 ( 该策略将在 Android 11 中无效 ) ; 这里简要介绍暂时性的解决方案 ;...AndroidManifest.xml 中配置 SD 权限 , 及旧存储策略 : ① SD 权限 : 配置 SD 读写权限 ; <...在 Activity 中动态申请权限 : 在 Activity 中调用 initPermissions(); 方法 , 即可动态申请 SD 访问权限 ; /** * 需要获取的权限列表...设置旧存储策略 动态申请权限 即可在 Android 10 中访问 SD , 如果在 Android 11 访问 , 查看章节开始的文档 ; 四、 完整源码示例 ---- 图片压缩源码示例 : 压缩质量

    73720

    Android网络与数据存储——File存储(实现SD文件浏览器)

    Java提供了一套完整的IO流体系,包括FileInputStream、FileOutPutStream等,通过这些IO流可以非常方便的访问磁盘上的文件内容。...当手机内存为空时,程序将被安装到外部存储器上;当程序安装到手机上,用户可以决定把程序放在外部存储器还是内存中。...读写SD上文件的步骤: 调用Environment的getExternalStorageState()方法判断手机上是否插入了SD,并且应用程序具有读写SD权限。...为了读写SD上的数据,必须在AndroidManifest.xml中添加读写SD权限: <!...# 五.SD文件浏览器 *** 利用Java的File类开发一个SD文件浏览器,通过Environment.getExternalStorageDirectory()访问系统的SD目录,然后通过File

    1.7K30

    【Flutter 实战】文件系统目录

    getExternalCacheDirectories 存储特定于应用程序的外部缓存数据的目录的路径。这些路径通常位于外部存储(如单独的分区或SD)上。电话可能具有多个可用的存储目录。...getExternalStorageDirectories 可以存储应用程序特定数据的目录的路径。这些路径通常位于外部存储(如单独的分区或SD)上。...内部存储 用于保存应用的私有文件,其他应用无法访问这些数据,创建的文件在此应用的包名目录下,没有 root 权限 的手机无法在手机的 文件管理 应用中看到此目录,不过可以通过 Android Studio...内部存储的特点: 安全性,其他应用无法访问这些数据。 当应用卸载的时候,这些数据也会被删除,避免垃圾文件。 不需要申请额外权限。...外部存储除了 Android/data/ 目录,还有和此目录同级的目录,特点: 所有应用程序均可访问。 用户可以直接对文件进行删除、导入操作。 需要申请读写权限

    2.9K10

    Android 11新特性,Scoped Storage又有了新花样

    这类程序本身提供的功能就是对SD上的文件进行浏览与管理,而强制启用了Scoped Storage之后,本质上就没有文件浏览的概念了,我们也无法以文件的真实路径来对文件进行管理。...拥有对整个SD的读写权限,在Android 11上被认为是一种非常危险的权限,同时也可能会对用户的数据安全造成比较大的影响。 但文件浏览器就是要对设备的整个SD进行管理的,这怎么办呢?...权限了。...而如果还没有管理SD权限,则会弹出一个对话框,告知用户申请权限的原因,然后使用Intent跳转到指定的授权页面,让用户手动进行授权。 程序的运行效果如下图所示: ?...不过还有一点需要注意,即使我们获得了管理SD权限,对于Android这个目录下的很多资源仍然是访问受限的,比如说Android/data这个目录在Android 11中使用任何手段都无法访问

    1.5K20

    AndroidR兼容性适配指南

    此版本引入了多项增强功能,例如,可主动选择启用的媒体原始文件路径访问机制、面向媒体的批量编辑操作,以及存储访问框架的界面更新。...设备制造商认为可靠的各个 SD 卷的根目录,无论该是模拟还是可移除的卡。可靠的卷是指应用在大多数情况下可以成功访问的卷。 Download 目录。...在确认增加的流量消耗不会让用户付费,添加通常仅通过 WLAN 提供的体验,如主动下载一般为不按流量计费的 WLAN 保留的内容。 提供 5G 独有的体验,这种体验只能在高速度且低延迟的网络上实现。...此外,除非您的应用具有在后台访问位置信息的权限,否则该服务无法访问位置信息。...针对 Android 11(API 级别 30)并使用存储访问框架的应用程序将无法再授予对目录的访问权限,例如 SD 的根目录和下载目录。

    2K20

    笔记(十)——安卓存储知识

    ——》个人平时笔记,看到的同学欢迎指正错误,文中多处摘录于各大博主精华、书籍 1、存储相关详解知识 安卓起初早年是有内置SD和可扩展插拔TF区分的,但是近年手机内置SD的高内存导致越来越少的手机支持...并且现在默认都是将文件优先存储于内置SD中。...从用户角度来说SD有内置SD和外置TF之分,通过Environment或者Context获取的都是手机自带的内置SD路径,类似storage/emulated/0/加后缀。...内部存储和外部存储并不是按是否存储SD来区分的,内部存储是在data文件下且不可被访问操作,外部存储是在storage或者mnt文件夹下是可以被访问操作的,****这些就是区别。...7、安卓7.0使用Uri访问本地文件添加了行为权限,Android 框架执行StrictMode API 的政策禁止在应用外部公开 file://URI,分享私有文件内容需要通过使用FileProvider

    1.3K31
    领券