### Gallery Images / Videos 在 Android 上要取出 Gallery 的相片 / 影片,在以前我們可以使用 media query 來達成,但是在 API 的變更後,現在要改為使用 content resolver 來達成了。 ### Content Resolver 其實就是簡單的一句可以取得 content resolver,和以前 media query 比起來只差一點點。 ```java context.getContentResolver(); ``` 以下是一個完整的代碼來用取出 Gallery 內的圖片。 ```java // select image data Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI; // columns for each row String[] projection = { MediaStore.MediaColumns.DATA }; // run query Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null); // get column index int index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA); // do each cursor while (cursor.moveToNext()) { // get the file path String path = cursor.getString(index); // do something with the file path } ``` ### URI 不同的 URI 是指對應不同的資料表 (Table),下面會列出兩個最常用的 Uri : 指向圖片的資料表 > android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI 指向影片的資料表 > android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI