6月 11, 2020 Android
### 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
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)