여기에 제안 된 코드를 바탕으로 stackoverflow에서 MediaStore에서 이미지를 추출하려고했습니다. 그러나 실제 사진을 선택하면 getContentResolver(). query()는 항상 null을 반환합니다. 이유를 이해할 수 없습니다 ...MediaStore에서 선택한 이미지가 반환되지 않습니다.
Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(i, SELECT_PHOTO);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.v(TAG,"onActivityResult: requestCode = "+requestCode+", resultCode = "+requestCode);
if (requestCode == SELECT_PHOTO) {
Uri selectedImage = data.getData();
String[] filePathColumn = {android.provider.MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor != null) {
Log.v(TAG,"onActivityResult: count = "+cursor.getCount());
if (cursor.getCount() == 1) {
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
Log.v(TAG,"onActivityResult: filePath = "+filePath);
}
cursor.close();
}
}
}
MediaStore의 설명서를 보셨습니까? 이것은 단서를 줄 수 있습니다. 더 나은 점은 MediaStore.java의 소스를 더 잘보아야한다는 것입니다. – JoxTraex
MediaStore 소스를 확인하십시오. 나는 초보자 일 뿐이야. 나는 방금 Android 프로그래밍을 시작했습니다. –