Android에서 MIME 유형을 기반으로 연락처 목록을 가져오고 싶습니다.Android에서 MIME 형식으로 연락처 가져 오기
예를 들어 전자 메일 주소가있는 연락처 목록을 원합니다.
Android에서 MIME 유형을 기반으로 연락처 목록을 가져오고 싶습니다.Android에서 MIME 형식으로 연락처 가져 오기
예를 들어 전자 메일 주소가있는 연락처 목록을 원합니다.
ContactsContract.RawContacts.Entity
디렉터리를 사용하여 원시 연락처와 연결된 모든 데이터를 읽어야합니다. 원시 연락처에 데이터 행이있는 경우 엔티티 커서에 각 데이터 행에 대한 행이 포함됩니다. 원시 연락처에 데이터 행이 없으면 커서에는 아직 원시 접촉 레벨 정보가있는 행이 하나씩 포함됩니다.
Uri rawContactUri =
ContentUris.withAppendedId(RawContacts.CONTENT_URI, rawContactId);
Uri entityUri =
Uri.withAppendedPath(rawContactUri, Entity.CONTENT_DIRECTORY);
Cursor c =
getContentResolver().query(
entityUri,
new String[] {
RawContacts.SOURCE_ID, Entity.DATA_ID, Entity.MIMETYPE, Entity.DATA1 },
null, null, null);
try {
while (c.moveToNext()) {
String sourceId = c.getString(0);
if (!c.isNull(1)) {
String mimeType = c.getString(2);
String data = c.getString(3);
//decide here based on mimeType, see comment later
}
}
} finally {
c.close();
}
예를 들어,이 mimeType
Phone.CONTENT_ITEM_TYPE
,이면 열 DATA1
저장 전화 번호 만, 데이터 종류 Email.CONTENT_ITEM_TYPE
다음 DATA1
저장 이메일 주소 인 경우.
는 일반적인 되려면 미래 지향형, 당신은 콘텐츠 유형과 각 데이터의 열 이름 모두에 대한 상수를 제공하는 경우, CommonDataKinds.Email 위해, 사용할 수 있습니다, 그래서 당신은
String email = c.getString(c.getColumnIndex(Email.ADDRESS));
같은 것을 쓸 수
물론 ContentResolver.query()
에 MIMETYPE 및 기타 DataColumns
의 상수를 사용하여 관심있는 레코드 만 검색하도록 조건을 제공 할 수 있습니다.
코드에서 'rawContactId'는 무엇입니까? – Prakash