首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 獲取 SD 卡指定目錄的 URI 路徑

     編輯:程式設計綜合問答

標準做法

使用 Environment.getExternalStorageDirectory() 獲取外部存儲根目錄,拼接子目錄後轉為 URI:

String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();
File wallpaperDir = new File(sdcard, "Wallpaper");
if (!wallpaperDir.exists()) wallpaperDir.mkdirs();

// 方式 1: file:// URI
Uri uri1 = Uri.fromFile(wallpaperDir);

// 方式 2: 解析字符串
Uri uri2 = Uri.parse("file://" + wallpaperDir.getAbsolutePath());

Android 10+ (Q) 適配

  • Uri.fromFile() 在 Android 7.0+ 觸發 FileUriExposedException。
  • 應改用 FileProvider 生成 content:// URI,或直接傳遞 File 對象給需文件路徑的 API。
  • 媒體文件優先使用 MediaStore 插入獲取 content:// URI。

舊代碼問題分析

原代碼複製 assets 文件到 /sdcard/Wallpaper/ 後未獲取該目錄 URI,直接拼接字符串易出錯。上述方法統一由系統 API 解析路徑,更可靠。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved