2011-12-06 10 views
1

最新のイメージが必要ですが、2つの異なる場所から選択する必要があります。これはどうすればいいですか?2つの異なるデータソースからソートされたデータを選択する

以下は私のコードです。/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

はそれが正しいだのをありがとうございました! あなたの答えにもう1つ追加すると、私は_IDでそれをソートしなければならず、それは完璧に働いています! – IamStalker

関連する問題