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

如何获取Android 10及以上版本共享存储文件夹的文件路径?

在Android 10及以上版本中,可以通过以下步骤获取共享存储文件夹的文件路径:

  1. 首先,确保你的应用已经申请了READ_EXTERNAL_STORAGE权限,以便能够读取外部存储的文件。
  2. 使用MediaStore类来查询共享存储文件夹中的文件。可以通过以下代码获取文件的Uri:
代码语言:txt
复制
Uri uri = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL);
  1. 使用ContentResolver类来查询文件的路径。可以通过以下代码获取文件的路径:
代码语言:txt
复制
String[] projection = {MediaStore.Downloads._ID, MediaStore.Downloads.DISPLAY_NAME};
String selection = MediaStore.Downloads.DISPLAY_NAME + "=?";
String[] selectionArgs = new String[]{fileName};
Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, null);
if (cursor != null && cursor.moveToFirst()) {
    int idColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID);
    long fileId = cursor.getLong(idColumn);
    Uri fileUri = ContentUris.withAppendedId(uri, fileId);
    String filePath = fileUri.toString();
    cursor.close();
}

在上述代码中,fileName是你要查询的文件名。

  1. 最后,你可以使用获取到的文件路径进行文件操作,例如读取、写入等。

需要注意的是,Android 10及以上版本引入了存储访问框架(Scoped Storage),对应用的文件访问做出了一些限制。因此,如果你的应用需要访问其他应用的文件,或者需要访问外部存储的非共享文件夹,可能需要额外的权限或适配措施。

推荐的腾讯云相关产品:腾讯云对象存储(COS)。

腾讯云对象存储(COS)是一种高可用、高可靠、强安全性的云端存储服务,适用于存储和处理各种类型的非结构化数据,包括文本、图片、音频、视频等。它提供了简单易用的API接口和丰富的功能,可以帮助开发者快速构建可靠的存储解决方案。

产品介绍链接地址:腾讯云对象存储(COS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

干货 | 携程Android 10适配踩坑指南

Android 10(API 级别 29)更高版本为目标平台应用在默认情况下被赋予了对外部存储设备分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好管理外部存储文件。...要点: Android Q文件存储机制修改成了沙盒模式 APP只能访问自己目录下文件和公共媒体文件 Android Q版本以下机型,还是使用老文件存储方式 Android Q以上版本机型,所有应用均需要分区存储...2.3.3 File Path路径访问受影响接口 开启分区存储新特性, Andrioid 10不能够通过File Path路径直接访问共享目录下资源,以下接口通过File 路径操作文件资源,功能会受到影响...1)获取(创建)私有目录下文件夹 //在自身目录下创建apk文件夹 File apkFile = context.getExternalFilesDir("apk"); 2)创建私有目录文件 生成需要下载路径...主要是在公共目录下创建文件文件夹拿到本地路径uri,不同Uri,可以保存到不同公共目录中。

3.3K77
  • Android | 作用域存储适配

    在 10.0 中,作用域存储变得非常重要,这个新功能颠覆了我们一直惯用外置存储方式,因此大量 app 都面临着代码适配 本篇文章对作用域存储,以及如何进行适配,做了比较详细介绍 在 7.0...作用域存储 ​ 10.0 中,为了解决上述问题, google 在 Android 10 中加入了作用域功能 ​ 什么是作用域呢?...但是这个文件夹文件会随着应用卸载而被随之删除。 ​ 那如果需要访问其他目录怎么办呢,比如获取相册中图片,向相册中添加一张图片。...,需要注意是:共享文件夹可以通过 uri 进行访问,如拿到输入/输出流等。...如果添加了可以打开文件需求,如何处理?

    75020

    详解Android10分区存储机制(Scoped Storage)适配教程

    Android 10(API 级别 29)更高版本为目标平台应用在默认情况下被赋予了对外部存储设备分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好管理外部存储文件。...在发布Android10时候官方明确表态: 2020年,主要平台版本将要求所有应用都使用分区存储,无论应用目标 SDK 级别是多少。因此,您应该提前确保您应用能够使用分区存储。...为此,请确保针对搭载 Android 10(API 级别 29)更高版本设备启用了该行为。...()获取到属于应用自己文件路径 是 4....在应用中想要获取当前应用专有存储目录路径是可以用Context.getExternalFilesDir()方式获取

    3.3K32

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

    --:内部存储空间应用私有目录下 files/ 目录,等同于 Context.getFilesDir() 所获取目录路径;--> :内部存储空间应用私有目录下 cache/ 目录,等同于 Context.getCacheDir() 所获取目录路径;--> 表示应用程序内部SD卡存储目录下 cache/ 目录,共享完整路径为/storage/emulated/0/Android/data/com.bo.view...path 属性用于指定apk所在文件夹名,与步骤4中设置对应,不要弄错了。 name 属性告诉 FileProvider 为共享路径创建一个别名为 apk 路径字段,可任意。...context) { //此处file应为apk下载完整路径文件,这里下载在了外部存储私有缓存文件夹下, // 你可以选择其他存储地址如:外置SD卡等,但是要注意与

    2.5K31

    【权限问题专项】存储权限合理使用场景VS不合理使用场景说明

    内部存储路径为:/data/data/packagename(包名),外部存储私有目录路径为:/storage/emulated/0/Android/data/packagename(包名)。...在 Android 4.4(API 级别19)或更高版本中,应用无需请求任何与存储空间相关权限即可访问外部存储空间中应用私有目录。卸载应用后,系统会移除这些目录中存储文件。...获取外部存储共享文件夹路径有九种type,分别对应不同目录,如下: 1.DIRECTORY_MUSIC:音乐类型 2.DIRECTORY_PICTURES:图片类型 3.DIRECTORY_MOVIES...以上应用通过拍照方式上传头像不需申请 READ_EXTERNAL_STORAGE 和WRITE_EXTERNAL_STORAGE权限,除非对已拍照图片进行二次编辑,需要申请WRITE_EXTERNAL_STORAGE...以上就是存储权限内容,后续还会发布电话、通讯录、无障碍、设备管理器、通知栏、悬浮窗内容,请持续关注软件绿色联盟。

    99020

    Android 存储空间最佳实践

    我们制作了一个简单图片,列出了每种用例以及其在不同系统版本实践总结: 展示多个文件夹图片和视频文件 使用 query() API 查询媒体集合。...在 Android 10 上运行 如果您应用目标 API 为 Android 10 (API level 29),请停用分区存储并继续使用 Android 9 更低版本所使用方法来执行这类操作。...从代码或依赖库中使用直接文件路径访问文件 您需要根据运行应用 Android 版本来整合逻辑。...在 Android 10 上运行 如果您应用目标 API 为 Android 10 (API level 29),请停用分区存储并继续使用 Android 9 更低版本所使用方法来执行这类操作。...如果您应用目标平台为 Android 10 停用分区存储,以便您可以更轻松地在多个 Android 版本间保持应用行为不变。

    1.6K10

    相册适配 Android 11 绕那些弯路

    通过翻查官方文档,大概知道了这个属性意思:在配置targetSdk >= 29,应用搭载在Android 10以上版本手机运行时,可以暂时停用「分区存储」 1.「分区存储」又是什么?...分区存储 为了让用户更好地管理自己文件并减少混乱,以 Android 10(API 级别 29)更高版本为目标平台应用在默认情况下被赋予了对外部存储空间分区访问权限(即分区存储)。...为了让用户更好地管理自己文件并减少混乱,以 Android 10(API 级别 29)更高版本为目标平台应用在默认情况下被授予了对外部存储空间分区访问权限(即分区存储)。...这是摘自官方文档一段话,我们可以把「分区存储」简单解释为,Android 10 开启分区存储后,你应用在有权限情况下也无法随便访问其他外部存储空间中公有文件夹了 2....,确实找到了一小段不起眼文字 使用直接文件路径和原生库访问文件 为了帮助您应用更顺畅地使用第三方媒体库,Android 11 允许您使用除 MediaStore API 之外 API 通过直接文件路径访问共享存储空间中媒体文件

    1.7K30

    ArkUI-X跨平台已至,何需其它!

    平台真机和模拟器上运行调试; 平台版本构建工具要求:OpenHarmony平台:支持API 10+; Android平台:Android 8+,Level-26,version code:...,为SDK选择存储路径。...前置条件: Ubuntu需要18.04以上版本,macOS需要11.6.2以上版本,Windows需要Windows 10版本。1....编译后ArkTS代码、资源和平台胶水代码已生成到Android和iOS应用工程中,后续安装、运行和调试请使用Android Studio和Xcode,9.1、ios上运行我们来看一下在ios上如何运行显示隐藏文件快捷键...在Finder打开你想要查看隐藏文件文件夹,然后使用快捷键Command + Shift + .,即可查看当下文件夹隐藏文件。用xcode打开然后我们我们选择app这一级。做如下配置。

    16310

    AndroidQ兼容性适配指南

    AndroidQ android10.jpeg Android 10隐私权变更 隐私权变更 受影响应用 缓解策略 ✅ 分区存储 针对外部存储过滤视图,可提供对特定于应用文件和媒体集合访问权限...一下设备使用兼容模式,但Android11以上设备无论是覆盖安装还是重新安装都无法使用兼容模式; 可以通过调用 Environment.getExternalStorageState() 查询该卷状态...分区存储影响 图片位置信息 一些图片会包含位置信息,因为位置对于用户属于敏感信息, Android 10 应用在分区存储模式下图片位置信息默认获取不到,应用通过以下两项设置可以获取图片位置信息: 在...在分区存储模型下,SD卡公共目录是不让访问,除了共享媒体那几个文件夹。...PS:仅限AndroidQ以上系统版本,低版本国产手机使用ContentResolver进行数据更新存在数据和文件不同步问题以及缩略图和原图不同步问题; 当应用拥有了 WRITE_EXTERNAL_STORAGE

    7K30

    Bugly升级SDK适配Android N

    前言 前几天有个用户在我们论坛反馈一个问题,说他们app在Android N机型中升级失败了,看了一下反馈问题,基本确定了是因为Android N收敛了访问共享文件权限,即在Android N中使用...intent不允许跨package共享file://URI,如果在工程中设置targetSDK版本Android N并且有通过Intent传递文件它会抛出FileUriExposedException...如何解决? Android N已经给出明确解决方案,如果你程序需要在应用间共享文件,您应发送一项 content://URI,并授予 URI 临时访问权限。...我们可以看到在provider中需要配置相应meta-data,这个是共享文件路径,在res目录下新建xml文件夹并新建对应xml文件(如下面的provider_paths),如下所示: ?...总结 关于Android N共享文件权限适配已经完成,还有其他特性还需要我们去验证看是否存在一些bug,其实Android每一个版本发布都会面临这样一个问题,所以我们去了解每个版本特性变化还是很有必要

    85620

    干货 | Trip.com Android 11 适配之旅

    2.3 分区存储Android 11 之前版本Android 文件存储可以分成以下几类: 1)内置存储应用私有目录 2)外置存储应用私有目录 3)外置存储媒体文件 4)外置存储文件...Android 存储权限问题一直为人诟病,主要问题在于外置存储“媒体”相关权限和“文件”相关权限均被归类在 WRITE_EXTERNAL_STORAGE ,同时“文件权限过大,导致应用可以在外置存储里建立文件夹...在分区存储开启之后,将受到以下限制: 私有目录访问权限不变 可以直接访问本应用共享媒体文件 可以申请权限访问其他应用共享媒体文件 可以在弹窗确认后修改或删除其他应用共享媒体文件 外置存储非媒体文件不能直接访问...对于分区存储,其涉及函数众多,我们通过以下几类来搜索: 直接获取外置存储路径,如 getExternalStorageDirectory 直接获取外置存储媒体路径,如 getExternalStoragePublicDirectory...通过 getExternalStorageDirectory() 获取根目录后,拼接了 "/log.txt" 来建立文件文件夹

    1.7K20

    AndroidQ分区存储权限变更适配实现

    访问私有文件 应用需要将文件存储在应用沙盒中,并且访问这个文件夹无需权限。官方推荐应用在沙盒内存储文件地址为Context.getExternalFilesDir()下文件夹。...任何其他文件(包括“downloads”目录下文件),必须使用存储访问框架 注意:访问外部存储设备中文件时会进入过滤视图应用不具有对 /sdcard/DCIM/IMG1024.JPG 等路径直接内核访问权限...以上方式不建议使用。 官方警告:明年,所有应用主要平台版本都需要分区存储,无论其采用哪种目标 SDK 级别。...特定文件访问适配 分享媒体文件 如果你应用有分享照片和视频需求。请使用 MediaStore存储需要共享文件。...照片中位置信息 我们拍摄照片一般在Exif元数据中包含了位置信息,在Android Q 以前我们可以方便获取到图片位置信息,Android Q 会默认对您应用隐藏此类信息。

    1.5K31

    App磁盘沙盒工具实践

    4.3 不同版本访问权限 4.4 访问文件操作 4.5 10和11权限说明 4.6 分享文件给第三方 4.7 打开图片资源 4.8 为何需要FileProvider 4.9 跨进程IPC通信 05.其他设计实践说明...能够查看缓存文件修改信息,修改时间,缓存文件大小,获取文件路径等等。都是在可视化界面上处理。...分别以共享存储空间和其它目录为例,阐述访问方式: 访问媒体文件(共享存储空间)。目的是拿到媒体文件路径,有两种方式获取路径: 以图片为例,假设图片存储在/sdcard/Pictures/目录下。...还有就是方便操作文件 Android 10.0访问变更 Google在Android 10.0上重拳出击了。引入Scoped Storage。简单来说有好几个版本:作用域存储、分区存储、沙盒存储。...文件共享方式是如何理解 一个常见应用场景:应用A里检索到一个文件yc.txt,它无法打开,于是想借助其它应用打开,这个时候它需要把待打开文件路径告诉其它应用。对应案例就是,把磁盘文件分享到qq。

    1.7K30

    获取Android应用专属缓存存储目录实例

    SD卡读写权限,所以6.0以上系统使用时也不需要动态申请读写权限 使用注意事项 当存储比较大文件时,如图片等文件存储在SD卡对应目录下 应用内存缓存目录只有应用本身能对其进行读写操作,外部应用不行...,如相机应用 (内存目录读写权限:rwxr-x–x,SD卡缓存目录读写权限:rwxrwx—) 即使是通过自定义路径得到上述目录,在系统版本大于等于4.4时也不需要申请SD卡读写权限 API使用方法封装.../** * 获取应用专属缓存目录 * android 4.4以上系统不需要申请SD卡读写权限 * 因此也不用考虑6.0系统动态申请SD卡读写权限问题,切随应用被卸载后自动清空 不会污染用户存储空间.../emulated/0/Android/data/app_package_name/cache * 否则返回对应类型文件夹如Environment.DIRECTORY_PICTURES 对应文件夹为...; } return appCacheDir; } 以上这篇获取Android应用专属缓存存储目录实例就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.5K30

    Android 11 开发者常见问题: 存储 | FAQ・第二期

    为了确保不同 Android 版本连续性,如果您应用目标版本Android 10 或者是更高版本,您应该选择不启用。...更多详细信息,请参阅文末相关阅读 Android 存储方案最佳实践上下篇。 与媒体存储 API 相比,文件路径访问性能表现如何? 性能表现非常依赖具体应用场景。...应用该如何测试分区存储变化? 通过这些 兼容性标志,应用可以测试与直接文件路径访问或媒体存储 API 相关分区存储行为。还有另一个 兼容性标志,也可用来测试使用存储访问框架访问某些路径限制。...在 Android 10 上,位于分区存储环境中应用无法通过文件路径访问文件。为了与这一设计保持一致,我们随后废弃了 DATA column。...请参阅文末相关阅读 Android 存储方案最佳实践上下篇,来获取数据迁移最佳实践相关信息吧。

    1.1K10

    AndroidQ(10)分区存储完美适配方法

    本篇主要是对AndroidQ(10)分区存储适配具体实现 要点: Android Q文件存储机制修改成了沙盒模式 APP只能访问自己目录下文件和公共媒体文件 对于AndroidQ以下,还是使用老文件存储方式...这里需要注意:在适配AndroidQ时候还要兼容Q系统版本以下,使用SDK_VERSION区分 背景 存储权限 Android Q仍然使用READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE...作为存储相关运行时权限,但现在即使获取了这些权限,访问外部存储也受到了限制,只能访问自身目录下文件和公共内体文件。...适配指导 AndroidQ中使用ContentResolver进行文件增删改查 1、获取(创建)自身目录下文件夹 获取创建,如果手机中没有对应文件夹,则系统会自动生成 //在自身目录下创建...,但不可直接使用路径访问 不可读写其他APP创建非媒体类文件 后续对AndroidQ存储针对具体功能做介绍,欢迎关注~ 以上就是本文全部内容,希望对大家学习有所帮助。

    1.5K40

    《移动互联网技术》 第七章 数据存取: 掌握File、SharePreferences、SQLite和ContentProvider四种数据存取方式

    首先构造一个ContactsActivity,这个活动要访问联系人APP内容提供器。注意访问共享数据还要声明使用权限,如果使用Android 6.0以上版本,记得要申请动态使用权限。...” ​ android:enabled=“true” ​ android:exported=“true”> … … 完成以上代码后,其他应用程序就能够访问应用共享数据了。...在DDMS中,用File Explorer查看Android系统存储空间,可以看到第一级data文件夹,它就是内部存储, 打开data文件夹之后(需要root权限),有一个app文件夹,它存放着所有...如果使用数据库,数据库文件存储在databases文件夹中,一般数据则存储在files文件夹中,缓存文件存储在cache文件夹中。 应用程序将文件保存在内部存储中。...此外,如果是Android 4.4以前版本,读取或写入外部存储(包括公共目录和私有目录)文件,必须获取 READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 系统权限

    7410
    领券