Android Content Provider 상세 설명 및 예시 코드
1.콘 텐 츠 제공 자 안내
2.기 존의 Content Provider 사용
3.자신의 Content Provider 를 정의 합 니 다.
1.콘 텐 츠 제공 자 안내
안 드 로 이 드 애플 리 케 이 션 의 네 가지 핵심 구성 요 소 는 Activity,Service,Broadcast Receiver 와 Content Provider 라 고 합 니 다.안 드 로 이 드 에 서 는 응용 프로그램 이 서로 독립 되 어 있 으 며,모두 자신의 독립 된 가상 컴퓨터 에서 실행 되 고 있다.Content Provider 는 프로그램 간 에 데 이 터 를 공유 하 는 방법 을 제공 합 니 다.한 프로그램 은 Content Provider 를 사용 하여 URI 를 정의 하고 통 일 된 조작 인 터 페 이 스 를 제공 할 수 있 습 니 다.다른 프로그램 은 이 URI 를 통 해 지정 한 데 이 터 를 방문 하여 데이터 의 증가,삭제,수정,검 사 를 할 수 있 습 니 다.
2.기 존의 Content Provider 사용
우 리 는 안 드 로 이 드 시스템 주소록 에서 제공 하 는 Content Provider 를 읽 는 것 을 예 로 들 어 기 존의 Content Provider 를 어떻게 사용 하 는 지 설명 합 니 다.
1,새 항목 Lesson 20ContentProvider 프로젝트.
2.res/layot/main.xml 내용 을 생략 하면 검색 단 추 를 만 드 는 것 입 니 다.
3.MainContentProvider.java 의 내용 은 다음 과 같 습 니 다.
package android.basic.lesson20;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainContentProvider extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1 = (Button) findViewById(R.id.Button01);
OnClickListener ocl = new OnClickListener() {
@Override
public void onClick(View v) {
ContentResolver contentResolver = getContentResolver();
//
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//
if (cursor.moveToFirst()) {
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
do {
// ID
String contactId = cursor.getString(idColumn);
//
String disPlayName = cursor.getString(displayNameColumn);
Toast.makeText(MainContentProvider.this, " :"+disPlayName,
Toast.LENGTH_LONG).show();
// 。 0
int phoneCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (phoneCount > 0) {
//
Cursor phonesCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phonesCursor.moveToFirst()) {
do {
//
String phoneNumber = phonesCursor
.getString(phonesCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(MainContentProvider.this, " :"+phoneNumber,
Toast.LENGTH_LONG).show();
} while (phonesCursor.moveToNext());
}
}
} while (cursor.moveToNext());
}
}
};
b1.setOnClickListener(ocl);
}
}
AndroidManifest.xml 에 추가:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
4.실현 효과 도:이상 은 안 드 로 이 드 콘 텐 츠 Provider 의 간단 한 실례 입 니 다.다음 에 관련 지식 을 계속 보충 하 겠 습 니 다.여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.