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

Android Q-如何获取外部SD卡公共下载目录路径

Android Q引入了一些变化,包括对外部SD卡访问权限的限制。在Android Q及更高版本中,应用程序无法直接访问外部SD卡的公共下载目录路径。相反,应用程序需要使用媒体存储访问框架(MediaStore Access Framework)来获取外部SD卡上的文件。

以下是在Android Q中获取外部SD卡公共下载目录路径的步骤:

  1. 确定应用程序是否具有访问外部存储的权限。在AndroidManifest.xml文件中添加以下权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 使用媒体存储访问框架(MediaStore Access Framework)查询外部SD卡上的下载目录。可以使用以下代码获取外部SD卡上的公共下载目录路径:
代码语言:txt
复制
String[] projection = {MediaStore.Downloads._ID, MediaStore.Downloads.DISPLAY_NAME};
Uri downloadsUri = MediaStore.Downloads.EXTERNAL_CONTENT_URI;
Cursor cursor = getContentResolver().query(downloadsUri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
    int idColumn = cursor.getColumnIndex(MediaStore.Downloads._ID);
    int nameColumn = cursor.getColumnIndex(MediaStore.Downloads.DISPLAY_NAME);
    do {
        long fileId = cursor.getLong(idColumn);
        String fileName = cursor.getString(nameColumn);
        // 处理文件ID和文件名
    } while (cursor.moveToNext());
    cursor.close();
}

请注意,上述代码仅获取外部SD卡上的下载目录中的文件信息。要访问文件本身,您需要使用文件URI和ContentResolver。

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

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和业务场景进行评估。

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

相关·内容

Android开发笔记(三十二)文件基础操作

File类是java中的文件操作工具类,它的常用方法如下: File构造函数 : 根据文件路径构造File对象 delete : 删除文件 exists : 判断文件是否存在 getName : 获取文件的文件名 getPath : 获取文件的目录路径 getParent : 获取上级目录路径 isDirectory : 判断是否为目录/文件夹 isFile : 判断是否为文件 length : 获取该文件的大小 list : 列出该目录下的所有文件(夹),返回String数组 listFiles : 列出该目录下的所有文件(夹),返回File数组 mkdirs : 创建目录/文件夹 renameTo : 重命名文件,其实就是移动文件到指定目录 获取文件大小有两种方式,一种是使用File类的length方法,另一种是使用FileInputStream类的available方法。下面是两种方式的示例代码: 1、length方式

01
  • 领券