이메일과 연락처 정보 (커서)를 가져와야합니다. 그들은 분명해야합니다. 그가 이메일을 가지고 있다면 연락 당 하나의 항목이 있어야합니다. 그것을하는 방법? 나는 새로운 연락처 API를 2.0 표적으로하고있다.이메일 ID가있는 연락처 가져 오기
1) CursorJoiner를 사용하여 시도했지만 이상한 일이 발생합니다. |의 _id 로그이에 :
내 문제는 내가이 같은 결과를 얻었다 무엇인지 지금MatrixCursor matCur = new MatrixCursor(
new String[]{
Contacts._ID,
Contacts.DISPLAY_NAME,
"photo_id",
"starred"
}
);
Cursor newContactCursor = managedQuery(
ContactsContract.Contacts.CONTENT_URI,
new String[]{
Contacts._ID,
Contacts.DISPLAY_NAME,
"photo_id",
"starred"
},
null,
null,
null//Contacts._ID
);
newContactCursor.moveToFirst();
Cursor emailCur = managedQuery(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] {
Email.CONTACT_ID,
Email.DATA1
},
null,
null,
Email.CONTACT_ID
);
emailCur.moveToFirst();
CursorJoiner joiner = new CursorJoiner(
newContactCursor,
new String[]{Contacts._ID},
emailCur,
new String[] {Email.CONTACT_ID}
);
for (CursorJoiner.Result joinerResult : joiner) {
switch (joinerResult) {
case LEFT:
// handle case where a row in cursorA is unique
//Log.i(TAG,"L|"+
//newContactCursor.getString(newContactCursor.getColumnIndex("_id")));
break;
case RIGHT:
// handle case where a row in cursorB is unique
//Log.i(TAG,
//"R|"+
//emailCur.getString(emailCur.getColumnIndex("contact_id")));
break;
case BOTH:
//Log.i(TAG,
//"L|"+
//newContactCursor.getString(newContactCursor.getColumnIndex("_id"))+
//"|R|"+
//emailCur.getString(emailCur.getColumnIndex("contact_id")));
Log.i(TAG, newContactCursor.getString(newContactCursor.getColumnIndex("_id"))+"|"+
newContactCursor.getString(newContactCursor.getColumnIndex("display_name"))+"|"+
emailCur.getString(emailCur.getColumnIndex(Email.DATA1)));
String[] columnValues =
{newContactCursor.getString(newContactCursor.getColumnIndex("_id")),
newContactCursor.getString(newContactCursor.getColumnIndex("display_name")),
newContactCursor.getString(newContactCursor.getColumnIndex("photo_id")),
newContactCursor.getString(newContactCursor.getColumnIndex("starred"))
};
matCur.addRow(columnValues);
break;
}
}
: 여기 내 코드입니다 display_name | 이메일 ID 내가 인해 개인 정보 보호 문제
1|[contact name]|[email id]
4|[contact name]|[email id]
5|[contact name]|[email id]
6|[contact name]|[email id]
7|
8|
9|
90|
91|
92|
93|
94|
95|
96|
97|
98|
99|
로 대체했다하지만 당신은 직접적 9 9 9이 무엇 전부입니다 90 9에서 점프 것을 볼 수 있습니까?
2) 고유 키워드를 사용하여이 작업을 수행 할 수 있습니까? ContactsContract와 같은 컨택 제공자가 가능합니까?
누구나 CursorJoiner 태그를 추가 할 수 있습니까? –