2012-01-18 5 views
0

여기에 제안 된 코드를 바탕으로 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(); 
     } 
    } 
} 
+0

MediaStore의 설명서를 보셨습니까? 이것은 단서를 줄 수 있습니다. 더 나은 점은 MediaStore.java의 소스를 더 잘보아야한다는 것입니다. – JoxTraex

+0

MediaStore 소스를 확인하십시오. 나는 초보자 일 뿐이야. 나는 방금 Android 프로그래밍을 시작했습니다. –

답변

0

에뮬레이터 또는 장치를 다시 시작하거나 SD 카드를 제거/설치하십시오. 누군가는 안드로이드 시스템이 SD 카드를 다시 시작하거나 다시로드 할 때 안드로이드 시스템이 미디어를 검색한다고 말합니다 ... 아마 데이터베이스가 변경되지 않았을 것입니다.

+0

재부팅했습니다. 아무런 변화도 없었습니다. 다른 아이디어? –

+0

내 역할에 어리석은 오류. 정말 바보. –

+0

무엇이 잘못 되었나요 ... SQL이 잘못 되었습니까? – JohnCookie

관련 문제