最終更新:
moonlight_aska 2014年11月08日(土) 21:02:37履歴
端末内の画像ファイルの情報を取得するには, メディアストア(MediaStore)クラスとコンテントリゾルバ(ContentResolver)クラスを利用する.
システム領域外の場合 /sdcard の場合 MediaStore.Images.Media.EXTERNAL_CONTENT_URI (通常はこちら)
その他に取得できる情報については, Android Developerの以下を参照.
http://developer.android.com/reference/android/pro...
http://developer.android.com/reference/android/pro...

- MainActivity.java
- getContentResolverメソッドで, ContentResolverのインスタンスを取得する.
- ContentResolver#queryメソッドで, 第1引数に画像の保存領域のURIを指定して, 画像ファイルの情報を取得する.
システム領域外の場合 /sdcard の場合 MediaStore.Images.Media.EXTERNAL_CONTENT_URI (通常はこちら)
- Cursor#getCountメソッドで, データベースにヒットした件数を取得する.
- Cursor#getColumnIndexメソッドで, 項目を指定してデータを取得する.
- Cursor#closeメソッドで, クローズする.
カラム名 | 情報 |
DATA | データストリーム |
MIME_TYPE | MIMEタイプ |
TITLE | タイトル |
LATITUDE | 緯度 |
LONGITUDE | 経度 |
http://developer.android.com/reference/android/pro...
http://developer.android.com/reference/android/pro...
package com.moonlight_aska.android.media01;
import java.util.Arrays;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
public class MainActivity extends Activity {
ArrayAdapter<String> mAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
// 画像情報の取得
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // データの種類
null, // 項目(null 全項目)
null, // フィルタ条件(null フィルタなし)
null, // フィルタ用パラメータ
null // ソート
);
Log.v("MEDIA", Arrays.toString(cursor.getColumnNames())); // 項目名一覧
Log.v("MEDIA", "Image files = " + cursor.getCount() ); // 取得件数
if (cursor.moveToFirst()) {
String info;
do {
info = "ID : " + cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media._ID));
info += "\nTITLE : " + cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.TITLE));
info += "\nPATH : " + cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
// アダプタに追加
mAdapter.add(info);
} while (cursor.moveToNext());
}
cursor.close();
ListView listView = (ListView)findViewById(R.id.listview);
listView.setAdapter(mAdapter);
}
}
- 動作例

コメントをかく