2014-04-06 38 views
0

我用下面的例子來嘗試在Android設備上保存的圖像和視頻加載到一個定義庫活動:訪問所有媒體文件的內部存儲空間

Access ordered images and video in same Cursor

儘管這適用於圖像和使用默認的Android相機應用程序創建的視頻,它似乎沒有找到媒體文件保存在本地專門爲應用程序的文件夾(位於圖片/ Name_of_app)

如何獲取所有媒體文件在設備上?

private String[] projection = { 
      MediaStore.Files.FileColumns._ID, 
      MediaStore.Files.FileColumns.DATA, 
      MediaStore.Files.FileColumns.DATE_ADDED, 
      MediaStore.Files.FileColumns.MEDIA_TYPE, 
      MediaStore.Files.FileColumns.MIME_TYPE, 
      MediaStore.Files.FileColumns.TITLE 
    }; // used for query ContentResolver for mediafiles 

    private String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
      + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE 
      + " OR " 
      + MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
      + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO; // used to select images and videos from contentResolver 

    private Uri queryUri = MediaStore.Files.getContentUri("external"); 

cl = new CursorLoader(CustomizedGallery.this, queryUri, projection, selection, null, MediaStore.Files.FileColumns.DATE_ADDED + " DESC"); 
+1

你能在畫廊應用中看到這些文件?你確定他們已被添加到媒體存儲?簡單地創建它們不會自動將它們添加到媒體商店數據庫。 http://stackoverflow.com/questions/3300137/how-can-i-refresh-mediastore-on-android –

+0

感謝您的鏈接。實際上,我無法在圖庫應用中看到圖片。所以我會查看鏈接並查看它是否有效。 – scientiffic

+0

我認爲你也可以重新啓動和/或重新安裝你的設備作爲一個快速的方式來觸發mediascanner。 –

回答

1

這聽起來像文件還沒有被添加到數據庫MediaStore還。你可以通過檢查圖庫應用程序來檢查它 - 如果它們沒有出現在那裏,他們還沒有在數據庫中。

只需在創建他們確實自動將它們添加到數據庫 - 掃描發生在規律的觸發點(如重啓或外部存儲的重新裝載),也可以手動請求重新掃描。

要請求特定文件的掃描您可以撥打:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(newFile))); 

點擊此處瞭解詳情: How can I refresh MediaStore on Android?