2011-12-30 2 views
0

내가 가진 문제를 파악하는 데 약간의 도움이 필요합니다. 전화상의 모든 이미지를 쿼리하여 GridView에 표시하는 응용 프로그램이 있습니다. 나는 이것을 할 수 있었고 그 목록을 채울 수 있었다. 문제는 목록에 액세스하고 쿼리의 항목에서 정보를 가져 오는 경우입니다. 항목이MediaStore를 사용하여 GridView에 모든 이미지를 표시하는 방법

/mnt/sdcard/images/media/file.jpg

의 파일 경로를 가지고 있지만 경로는

/SDCARD/이미지/미디어/파일인지 커서가 나에게 말하고있다 .jpg

이것은 목록을 채우는 데 사용한 코드입니다.

 // Set up an array of the Thumbnail Image ID column we want 
     String[] projection = {MediaStore.Images.Thumbnails._ID}; 
     // Create the cursor pointing to the SDCard 
     //returns the cursor that checks the sdcard for Thumbnail id's 
       cursor = managedQuery( 
       MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
       projection, 
       // Which columns to return 
       null, 
       // Return all rows 
       null, 
       MediaStore.Images.Thumbnails.IMAGE_ID); 
       // Get the column index of the Thumbnails Image ID 
       columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 

항목이 실제로 표시되지만 다른 커서에서 검색 할 때 경로가 잘못되었습니다. ?????? 나는 조금 길다.

나는 그것을 에뮬레이터 및 물리적 장치에서 사용했습니다. 같은 문제. 경로가 NULL이고 프로그램이 손상되었다는 오류가 표시됩니다.

MediaStore에서 EXTERNAL_CONTENT_URI를 쿼리하고 필요한 올바른 경로를 제공 할 수있는 방법이 있습니까? 또한 물리적 인 전화에서 사용했을 때 이미지가있는 sdcard의 첫 번째 디렉토리에 질의가 중지되고 더 많은 디렉토리를 쿼리 할 수있는 방법이 있습니까?

답변

3

MediaStore.Images.Media.EXTERNAL_CONTENT_URI을 사용해 보셨습니까?

managedQuery()도 사용되지 않으므로 getContentResolver().query()을 사용하십시오.

관련 문제