다음 코드를 열심히했습니다.하지만 불행히도 항목이 잘못된 연락처에 할당되었습니다. 나는 이유를 모른다.
시간
일을 테스트했지만 실수를 찾을 수 없습니다. 너 나 좀 도와 줄 수있어? 연락처 정보를 Android 연락처 테이블에 추가하십시오.
연락처 선택기를 사용하여 연락처를 선택하고이 사람의 일정 항목 (생년월일)을 연락처 테이블에 추가하려면이 코드를 사용하고 싶습니다.
1 단계 :
이미 매니페스트 파일에 권한을 설정 한 :
<uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
2 단계 :
연락처 선택기의 ID가 정의 :
private static final int CONTACT_PICKER_ID = 123;
,
단계 3 : 접촉 선택기라고
:
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_ID);
단계 4 : 또 다른 방법은 접촉 선택기의 결과를 수신하고 시도
선택된 사용자에 대한 이벤트를 추가 할 :
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_ID:
Uri selectedPerson = data.getData();
String contactId = selectedPerson.getLastPathSegment();
// ADD A NEW EVENT FOR THE SELECTED CONTACT --- BEGIN
ContentValues values = new ContentValues();
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
values.put(ContactsContract.Data.RAW_CONTACT_ID, contactId);
values.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
values.put(ContactsContract.CommonDataKinds.Event.RAW_CONTACT_ID, contactId);
values.put(ContactsContract.CommonDataKinds.Event.LABEL, "");
values.put(ContactsContract.CommonDataKinds.Event.START_DATE, "2010-01-28"); // hard-coded date of birth
Uri created = null;
try {
created = getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
}
catch (Exception e) {
}
if (created == null) {
Toast.makeText(this.getApplicationContext(), "Failed inserting the event!", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(this.getApplicationContext(), "Successfully inserted the event!", Toast.LENGTH_SHORT).show();
}
// ADD A NEW EVENT FOR THE SELECTED CONTACT --- END
break;
}
}
}
이벤트가 성공적으로 삽입되었습니다. 데이터베이스와 Google 연락처에도 표시됩니다.하지만 불행히도 잘못된 연락처에 할당되어 있습니다. 이게 왜 그렇게? 내 contactId입니다. 연락처 선택 도구에서 잘못 되었나요?
나는 어떤 방법 으로든 안드로이드 전문가가 아니지만 연락처를 읽고 쓰기 권한을 선택해야합니까? – Jared
http://developer.android.com/reference/android/Manifest.permission.html WRITE_CONTACTS에는 읽을 수 없습니다. 다시 나는 이것이 내게 떨어져있는 대답 일 뿐이라는 것을 모른다. – Jared
죄송합니다. READ_CONTACTS 권한도 설정되어 있습니다. 그러나 독서 과정은 문제가 아닙니다. 그것은 작동하지 않는 글입니다. – caw