【问题标题】:Problem adding Contact with new API使用新 API 添加联系人时出现问题
【发布时间】:2010-05-28 02:22:24
【问题描述】:

我正在尝试通过我的应用程序使用新的 ContactContract API 将新联系人添加到我的联系人列表中。我有以下基于android dev上的Contact Manager示例的方法。

    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);
}

在一个示例中,我有参数的流动值。 帐户类型:com.google accountName:(我的谷歌账户邮箱) 姓名:迈克 电话号码:5555555555 电话类型:3

对该函数的调用正常返回,没有抛出任何异常,但是在我手机的联系人管理器中找不到联系人。我的手机上也没有与该信息的联系。有没有人知道我可能做错了什么?

【问题讨论】:

    标签: android new-operator contacts


    【解决方案1】:

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

    【讨论】:

    • 这对我有用。更具体地说,转到联系人 -> 显示选项 -> [帐户] 并选中“所有其他联系人”
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-10-05
      • 1970-01-01
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多