使用多个电话号码更新联系人

问题描述 投票:1回答:2

我有此代码

public void updateContact (String contactId, String newNumber) {ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    String selectPhone = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "='"  + 
                     Phone.CONTENT_ITEM_TYPE + "'"; 

    String[] phoneArgs = new String[]{contactId};
    ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
                    .withSelection(selectPhone, phoneArgs)
                    .withValue(Phone.NUMBER, newNumber)
                    .build()); 
            try { 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();
            }       
    }

我从这里How to update contact number using Android取而来,对其进行了更改,以便通过我的所有联系人,并为每个联系人添加我自己的前缀。

我贯穿所有联系人,并为此提供了String id = phones.getString(phones.getColumnIndex(ContactsContract.Contacts._ID));

以上功能的联系人ID。但是,即使给定的ID正确,某些联系人(尤其是具有多个数字的联系人和一些只有一个数字的联系人)也不会更改以获取新的前缀? 。我在这里想念什么吗,我不知道该改变什么。我认为这可能是mime类型,但我可以想象有人可能没有使用Android预先安装的手机类型,而是使用了自定义类型。我没有任何错误。谢谢大家的宝贵时间!!

android android-contentprovider android-contacts
2个回答
1
投票

我终于更改了代码以使其正常工作,我正在传递联系人ID,但是我需要电话ID ...这是正确的代码。


0
投票

和有什么区别??

© www.soinside.com 2019 - 2024. All rights reserved.