의 각 연락처에 대한 생일을 얻을, 나는 다음과 같은 코드를 사용하여 모든 연락처를 참조하십시오. 하지만 분명히 아직 작동하지 않습니다. 그러면 연락처의 생년월일을 올바르게 읽을 수 있습니까?내 안드로이드 응용 프로그램에서 안드로이드 응용 프로그램
10
A
답변
22
말씀 : 일부 OEM의 표준 안드로이드 관행을 따르지 않을 수 있습니다 자신의 연락처 제공 업체 (하지 표준 안드로이드 하나)과 을 제공합니다. 문제가 해결되지 않으면, 당신은 OEM 연락처를 수정해야 할 수 있습니다
// method to get name, contact id, and birthday
private Cursor getContactsBirthdays() {
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Event.CONTACT_ID,
ContactsContract.CommonDataKinds.Event.START_DATE
};
String where =
ContactsContract.Data.MIMETYPE + "= ? AND " +
ContactsContract.CommonDataKinds.Event.TYPE + "=" +
ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
String[] selectionArgs = new String[] {
ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE
};
String sortOrder = null;
return managedQuery(uri, projection, where, selectionArgs, sortOrder);
}
// iterate through all Contact's Birthdays and print in log
Cursor cursor = getContactsBirthdays();
int bDayColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE);
while (cursor.moveToNext()) {
String bDay = cursor.getString(bDayColumn);
Log.d(TAG, "Birthday: " + bDay);
}
예를 들어, com.android.providers.contacts.HtcContactsProvider2 내 HTC 디자 이어 HD 여기
에 대한 쿼리에 응답 한 방법이다 공급자.
1
ContentResolver cr = getContentResolver();
String where = Data.raw_contacts_id + " = your_id and " + Data.MIMETYPE + " = " + CommonDataKinds.Events.CONTENT_ITEM_TYPE;
cr.query(ContactsContract.Data.CONTENT_URI, null, where, null, null);
내 컴퓨터에 sdk를 설치하지 않았으므로 코드를 테스트하지 않았습니다. 그러나 나는 그것이 효과가 있다고 믿습니다.
희망 사항은 일부 진전에서 도움이되기를 바랍니다.
2
하나는 다음 코드를 사용하여 모든 사용자의 생일을 읽을 수 있습니다
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
ContentResolver bd = getContentResolver();
Cursor bdc = bd.query(android.provider.ContactsContract.Data.CONTENT_URI, new String[] { Event.DATA }, android.provider.ContactsContract.Data.CONTACT_ID+" = "+id+" AND "+Data.MIMETYPE+" = '"+Event.CONTENT_ITEM_TYPE+"' AND "+Event.TYPE+" = "+Event.TYPE_BIRTHDAY, null, android.provider.ContactsContract.Data.DISPLAY_NAME);
if (bdc.getCount() > 0) {
while (bdc.moveToNext()) {
String birthday = bdc.getString(0);
// now "id" is the user's unique ID, "name" is his full name and "birthday" is the date and time of his birth
}
}
}
}
cur.close();
을하지만 그것을 할 수있는 더 나은 이하 방법은 무엇입니까? 주의
관련 문제
- 1. 내 응용 프로그램에서 안드로이드
- 2. 나는이 내 안드로이드 응용 프로그램 내 안드로이드 응용 프로그램
- 3. 안드로이드 : 내 응용 프로그램에서 의도
- 4. 안드로이드 : 우리는 내 응용 프로그램에서
- 5. 내 주변의 안드로이드 응용 프로그램
- 6. 안드로이드 응용 프로그램에서 안드로이드 adapter.add() 내 응용 프로그램을 깨고
- 7. 업데이트 응용 프로그램 - 안드로이드
- 8. 안드로이드 응용 프로그램 고정
- 9. 안드로이드 응용 프로그램
- 10. 안드로이드 : 나는 사진을 캡처하는 카메라를 사용하여 내 안드로이드 응용 프로그램에서 내 응용 프로그램
- 11. 안드로이드 응용 프로그램 파일
- 12. 응용 프로그램 내에서 안드로이드 응용 프로그램 평가
- 13. 전화 안드로이드 응용 프로그램
- 14. 안드로이드 응용 프로그램 레이아웃
- 15. 어떻게 안드로이드 응용 프로그램에서
- 16. SMS 안드로이드 응용 프로그램
- 17. 내 안드로이드 응용 프로그램 소스를 열어야합니까?
- 18. 안드로이드 응용 프로그램 doPost
- 19. 내 안드로이드 응용 프로그램에서 alwaysRetainTaskState와 및 lauchMode
- 20. 안드로이드 응용 프로그램에서
- 21. 안드로이드 응용 프로그램 내 특정 장치 감지
- 22. 시장에서 안드로이드 응용 프로그램
- 23. 안드로이드 응용 프로그램 업데이트
- 24. 안드로이드 응용 프로그램 충돌
- 25. 안드로이드 응용 프로그램 업데이트
- 26. 안드로이드 응용 프로그램 삭제
- 27. 안드로이드 응용 프로그램 업데이트
- 28. 안드로이드 응용 프로그램 크기
- 29. 안드로이드 응용 프로그램 선택기에서 응용 프로그램 숨기기
- 30. 안드로이드 유료 응용 프로그램
고마워요! 당신은 또한이 질문을 링크 할 수 있습니다;) http://stackoverflow.com/questions/7376980/android-2-2-contact-birthday-date – caw