Content Provider는 안드로이드 애플리케이션 간에 데이터를 공유할 수 있는 유일한 수단이다.

안드로이드 패키지들이 공통적으로 접근할 수 있는 데이터 저장소는 따로 없음
데이터를 제공하는 저장소를 한 곳으로 통일시키고 클라이언트 들이 쉽게 접근할 수 있도록 만들어 주는 데이터 레이어

같은 애플리케이션 안 뿐만 아니라 다른 애플리케이션의 액티비티나 서비스도 접근가능
 

ㅇ 제공가능 데이터 타입: 오디오, 비디오, 이미지, 연락처 등
ㅇ 다양한 데이터 저장 매커니즘 지원가능 파일, SQLite데이터베이스, 메모리 상의 해쉬맵 등

 

* 구현하기

ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

int count = cursor.getCount();
Toast.makeText(this,"데이터갯수: "+count, Toast.LENGTH_LONG).show();

String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);

 

menifest.xml ->  permissions -> add -> android.permission.READ_CONTACTS
까지 하면 menifest.xml 자동 추가됨 <user-permission> 이하내용...

 

정리하자면 ContentResolver라는 객체를 통해 query()메소드를 수행하여 데이터를 얻어 온다.
query()메소드의 리턴타입은 Cursor 이므로, 결국 ContentResolver를 통해 얻어 진 데이터는 Cursor의 객체형태로 저장된다.

by wisegirl 2013. 2. 22. 12:23