본문 바로가기

About Programing/05. Android

Android 내장 메모리의 사진 정보 가져오기

AndroidManifest.xml 에서 Permission 설정




Main.java

package com.eg.giver;

import java.util.ArrayList;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore.Images;

public class Main extends Activity
{
	ArrayList mTitleArray;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mTitleArray = new ArrayList();
        
        getImages ();
    }
    
    public void getImages ()
    {
    	Cursor mManagedCursor;
    	
    	mManagedCursor = getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI , null, null, null, null) ;
    	
    	if(mManagedCursor != null)
    	{
    		mManagedCursor.moveToFirst();
    		
    		int nSize = mManagedCursor.getColumnCount();
    		
    		while (true)
    		{
    			String bucket_display_name =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.BUCKET_DISPLAY_NAME)); // 버킷의 이름
    			String bucket_id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.BUCKET_ID)); // 버킷 ID
    			String date_taken =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATE_TAKEN)); // 촬영날짜. 1/1000초 단위
    			String description =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DESCRIPTION)); // Image에 대한 설명
    			String is_private =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.IS_PRIVATE)); // 공개 여부
    			String latitude = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.LATITUDE)); // 위도
    			String longitude =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.LONGITUDE)); // 경도
    			String mini_thumb_magic =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.MINI_THUMB_MAGIC)); // 작은 썸네일
    			String orientation = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.ORIENTATION)); // 사진의 방향. 0, 90, 180, 270
    			String picasa_id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.PICASA_ID)); // 피카사에서 매기는 ID
    			String id =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns._ID)); // 레코드의 PK
    			String data = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATA)); // 데이터 스트림. 파일의 경로
    			String title =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.TITLE)); // 제목
    			String size = 
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.SIZE)); // 파일의 크기
    			String mime_type =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.MIME_TYPE)); // 마임 타입
    			String display_name =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DISPLAY_NAME)); // 파일 표시명
    			String date_modified =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(Images.ImageColumns.DATE_MODIFIED)); // 최후 갱신 날짜. 초단위
    			String date_added =
    				mManagedCursor.getString(
    						mManagedCursor.getColumnIndex(
    								Images.ImageColumns.DATE_ADDED)); // 추가 날짜. 초단위
    			
    			mTitleArray.add(title);
    			
    			if (mManagedCursor.isLast())
    			{
    				break;
    			}
    			else
    			{
    				mManagedCursor.moveToNext();
    			}
    		}
    	}
    	
    }
}