2013-11-22 59 views
1

如何獲取android 2.3中的所有非媒體文件?獲取Android 2.3中的所有非媒體文件

ContentResolver cr = getApplicationContext().getContentResolver(); 
    Uri uri = MediaStore.Files.getContentUri("external"); 

    String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + " = " + MediaStore.Files.FileColumns.MEDIA_TYPE_NONE; 

    imagecursor = cr.query(uri, null, selection, null, null); 

    while (imagecursor.moveToNext()) { 
     count++; 
    } 

從上面我得到Android 4.0及以上的所有非媒體文件。但G etContentUri(external)在Android 2.3中不起作用,它顯示它在API級別11中添加了它。是否有任何替代方法可以在Android 2.3中獲取所有非媒體文件?

+0

選中此項:[從mediastore從uri獲取文件名和路徑](http://stackoverflow.com/questions/3401579/get-filename-and-path-from-uri-from-mediastore?rq=1)。 – Sajmon

+0

嘗試使用'Uri uri = Uri.parse(「content:// media/external/file」)' –

+0

@PankajKumar:它不適用於2.3 – user2791281

回答

0

如您所說,MediaStore.Files僅適用於API 11+。 所以沒有任何方法可以使用MediaStore來做到這一點。 但是,您有兩種選擇從設備的存儲獲取非媒體文件。

1.通過迭代中的所有存儲的文件: 在我看來不建議這樣做可言。因爲遍歷所有文件需要大約15-30秒。但如果你想這樣做check here。然後你提供一個簡單的條件來查看它是否是非媒體文件。

2.列出所有文件一次在數據庫中,然後得到它們: 這比第一種方法更好。對於使用它,你可以檢查this open-source application確切地做到這一點。

相關問題