標籤雲

搜尋此網誌

2012/03/06

透過 android.net.Uri 取得檔案完整路徑

今天專案進行到要讓使用者從設備上挑選主題圖片
程式要把路徑存進資料庫裡
以便之後叫出來 

但是 android.net.Uri 的 getPath() 方法拿出來的
不是真正的檔案路徑
所以無法用這個來叫出圖片
為此又請出 Google 大神
真的被我找到了

趕快來記錄一下
無論是圖片還是音樂檔案都可用此取得路徑
解法如下:

//MediaStore.Images.Media.DATA 跟 MediaStore.Audio.Media.DATA 都是 "_data"
public static String getFilePathFromUri(Context context, Uri uri) {
 CursorLoader cursorLoader= new CursorLoader(
  context,
  uri,
  new String[]{ "_data" },
  null,
  null,
  null
 );
 String returnStr = "";
 Cursor cursor = cursorLoader.loadInBackground();
 if(cursor.getCount()!=0){
  cursor.moveToFirst();
  returnStr = cursor.getString(cursor.getColumnIndexOrThrow("_data"));
 }
 return returnStr;
}

參考資料來源:
stackoverflow.com 的文章

沒有留言: