2010-05-28 2 views
2

내 연락처 목록에 새 연락처를 추가하려고합니다. 응용 프로그램을 통해 새 ContactContract API를 사용하고 있습니다. android dev에 Contact Manager 예제를 기반으로 다음과 같은 방법이 있습니다.문제 추가 새 API로 문의

private static void addContactCore(Context context, String accountType, String accountName, String name, String phoneNumber, int phoneType) throws RemoteException, OperationApplicationException { 

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    //Add contact type 
    ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
      .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType) 
      .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName) 
      .build()); 

    //Add contact name 
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
      .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
      .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
      .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, (!name.toLowerCase().equals("unavailable") && !name.equals("")) ? name : phoneNumber) 
      .build()); 

    //Add phone number 
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
      .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
      .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) 
      .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber) 
      .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType) 
      .build()); 

    //Add contact 
    context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
} 

한 예로 나는 매개 변수에 대한 유동 값을 가지고 있습니다. ACCOUNTTYPE : com.google 계정 이름 : (내 구글 계정 이메일) 이름 : 마이크 PHONENUMBER : 5555555555 PHONETYPE : 3

이 함수에 대한 호출이 예외가 발생하지 않고 정상적으로 반환은 그러나 접촉에 위치에 상관 없다 내 전화의 담당자에게 문의하십시오. 이미 내 휴대 전화에 해당 정보와 접촉도 없습니다. 누구든지 내가 잘못하고있는 것에 대해 어떤 통찰력을 가지고 있습니까?

답변

1

특정 계정과 연결된 대화 상대를 표시하려면 표시 옵션을 변경해야합니다.

+0

이것은 나를 위해 일했습니다. 보다 구체적으로, 연락처 -> 표시 옵션 -> [계정]으로 이동하여 "기타 모든 연락처"를 선택하십시오. – MobileDev852

0

"시스템 그룹 : 내 연락처"그룹에 추가해야 할 수도 있습니다.