2010-06-11 45 views
5

我正在製作一個應用程序,要求我列出手機SD卡上可用的所有圖像。Android列表所有圖片可用

我嘗試查詢ContentResolver的方式即

Cursor image = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI, new String[]{Images.Media._ID,Images.Media.DATA,Images.Media.DISPLAY_NAME}, null, null, null); 

但沒有任何結果。有沒有什麼辦法可以得到清單,或者如果那是不可能的,那麼是否有任何可能的意圖(例如PICK),我可以讓用戶選擇一個文件,然後訪問用戶選擇的文件路徑?

Helppppp傢伙...

回答

1

您可以使用畫廊活動選擇圖像,像這樣:

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_IMAGE); 

回調該活動的文件URI將在意圖參數

+0

哇! Thanx Fredrik ...那真的很快...會嘗試一下n讓你知道... – JaVadid 2010-06-11 06:00:29

8
//where contextObject is your activity 
ContentResolver cr = contextObject.getContentResolver(); 

String[] columns = new String[] { 
       ImageColumns._ID, 
       ImageColumns.TITLE, 
       ImageColumns.DATA, 
       ImageColumns.MIME_TYPE, 
       ImageColumns.SIZE }; 
cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       columns, null, null, null); 

我的代碼非常像你的(除了細分),它的工作原理。你不需要去詢問Gallery Intent的東西,它應該可以工作。我的兩個猜測是:

1)確保您的USB存儲設備未安裝,如果是的話,您將看不到任何外部圖像。

2)也許權限問題?嘗試添加GLOBAL_SEARCH權限以查看是否有幫助。

+0

哇!我也要嘗試這個... thanx兄弟... – JaVadid 2010-06-11 10:51:33

+1

好Gubatron我敢說...你完全正確。然後y沒有我的編碼工作?確定mayb一些小的錯字錯誤或我猜... ... thanx buddy – JaVadid 2010-06-11 11:00:31

+1

完美的作品,非常感謝! – 2015-03-09 05:03:14