2011-12-06 2 views
1

가장 업데이트 된 이미지가 필요하므로 두 곳에서 선택해야합니다. 어떻게해야합니까?두 개의 다른 데이터 소스에서 정렬 된 데이터 선택

아래 코드는 /dcim/camera에서 반환되며, 양쪽에서 돌아올 수 있어야하는 경우 eye-fi에서 반환되지 않습니다.

private void PopulateDataSource() { 
    if (_context == null) return; 

    if(_context.getContentResolver() != null) { 
     final ContentResolver cr = _context.getContentResolver(); 

    String[] projections = new String[] { 
     MediaStore.Images.ImageColumns._ID, 
     MediaStore.Images.ImageColumns.DATE_TAKEN, 
     MediaStore.Images.ImageColumns.DATA }; 
     String sortOrder = String.format(
      "%s limit 10", Images.ImageColumns.DATE_TAKEN + " DESC"); 

    final String[] selectionArgs = { 
     getBucketId(Environment.getExternalStorageDirectory().toString() + 
     "/Eye-Fi"), 
     getBucketId(Environment.getExternalStorageDirectory().toString() + 
     "/DCIM/Camera") }; 

    final String selection = MediaStore.Images.Media.BUCKET_ID + " = ?"; 

    try { 
     // select all images from DataBase and set it in Cursor 
     SearchCursor = cr.query(
      MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
      projections, selection, selectionArgs, sortOrder); 

     } 
     catch (Exception ex) { 
      Log.e("Cursor failed", ex.getMessage()); 
     }  
    } 
} 

답변

0

다음과 같이 선택 문자열 바꾸기 :

final String selection = MediaStore.Images.Media.BUCKET_ID + " IN (?, ?)"; 
+0

감사의 그것이 맞습니다! 답변에 한 번 더 추가하면 _ID별로 정렬해야하며 완벽하게 작동합니다! – IamStalker

관련 문제