2010-05-28 66 views
2

我想通过我的应用程序使用新的ContactContract API将新联系人添加到我的联系人列表中。我有以下基于Android开发人员的联系人管理器示例的方法。添加问题联系新的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 帐户名:(我的谷歌帐户的电子邮件) 名:迈克 电话号码:5555555555 PHONETYPE:3

给函数的调用正常返回而不被抛出的任何异常但是接触不到哪里在我手机上的联系人管理器中找到。我的手机上也没有与该信息的联系。有没有人有任何洞察到我可能做错了什么?

回答

1

您需要更改显示选项以显示与特定帐户关联的联系人。

+0

这对我有效。更具体地说,转到联系人 - >显示选项 - > [帐户],然后选中“所有其他联系人” – MobileDev852 2010-12-29 21:34:50

0

您可能还需要将其添加到“系统组:我的联系人”组。