【问题标题】:Android contact disappears when I add new phone number to it当我向其添加新电话号码时,Android 联系人消失了
【发布时间】:2014-10-24 12:49:43
【问题描述】:

此代码会导致联系人消失。我正在尝试向联系人添加另一个电话号码

public void addNumber(Context cos, String contactID, String newPhoneNumber){
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();


ops.add(ContentProviderOperation
                        .newUpdate(ContactsContract.Data.CONTENT_URI)
                        .withSelection(ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?", new String[]{contactID})
                        .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                        .withValue(ContactsContract.CommonDataKinds.Phone.DATA, newPhoneNumber).build());

                try {
                    cos.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
                } catch (RemoteException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (OperationApplicationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
}

【问题讨论】:

  • 您是否尝试插入或更新号码?代码尝试进行更新。

标签: java android android-contentprovider android-contacts android-compatibility


【解决方案1】:

这样试试

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

ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
      .withValue(Data.RAW_CONTACT_ID, rawContactId)
      .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
      .withValue(Phone.NUMBER, "1-800-GOOG-411")
      .withValue(Phone.TYPE, Phone.TYPE_CUSTOM)
      .withValue(Phone.LABEL, "free directory assistance")
      .build());
 getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2012-06-13
    相关资源
    最近更新 更多