我試圖從庫中獲取所選文件的路徑,但它返回null,我不知道爲什麼。我看到的每個代碼都使用相同的方法,但對我無效。這裏是我的代碼:來自Uri的圖像路徑返回null
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// LOAD_FILE_REQUEST is a global variable:
// private static final int LOAD_FILE_REQUEST = 1;
if (requestCode == LOAD_FILE_REQUEST && resultCode == RESULT_OK && data != null) {
if(data.getData() == null) {
System.out.println("NULL");
} else {
System.out.println("NOT NULL"); // <--- Printed
}
currImageURI = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(currImageURI, filePathColumn, null, null, null);
if(cursor.moveToFirst()){
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String yourRealPath = cursor.getString(columnIndex);
System.out.println("REAL PATH "+yourRealPath);
} else {
System.out.println("NO ROWS!!!"); // <-- Not printed
}
cursor.close();
}
}
這「你得到一個相對的URI,當你查詢它的位置(...)ContentResolver沒有該文件的路徑。」幫助我用另一種方法解決我的問題。不是試圖獲取圖像位置,而是將其保存在sd上,然後通過這個新的文件路徑進行訪問。謝謝。 – lucasdc 2014-08-28 16:16:31