Java 我想根据身份证号码向联系人中添加信息,但总是添加到错误的姓名中。
我想根据身份证号码在联系人中添加电话号码,但总是添加到错误的姓名中。谁能告诉我发生这种事的原因吗。它在虚拟设备和索尼手机上运行良好,但正如我在上面一款新的三星moble手机上所说的,它出现了一个错误。我可以清楚地确认身份证号码是正确的 以下是源代码:Java 我想根据身份证号码向联系人中添加信息,但总是添加到错误的姓名中。,java,android,contact,Java,Android,Contact,我想根据身份证号码在联系人中添加电话号码,但总是添加到错误的姓名中。谁能告诉我发生这种事的原因吗。它在虚拟设备和索尼手机上运行良好,但正如我在上面一款新的三星moble手机上所说的,它出现了一个错误。我可以清楚地确认身份证号码是正确的 以下是源代码: ContentValues values = new ContentValues (); values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, contactID); v
ContentValues values = new ContentValues ();
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, contactID);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, shortNumber);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, Phone.TYPE_OTHER);
getContentResolver().insert(Data.CONTENT_URI,values);
values.clear();
这里的答案可能会有所帮助:
根据上面的注释,上面的代码似乎并不适用于所有设备。Alok Save发布的答案建议使用applyBatch()方法,如下所示:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME,null )
.build());
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, "9X-XXXXXXXXX")
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
.build());
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
ArrayList ops=new ArrayList();
int rawContactInsertIndex=ops.size();
添加(ContentProviderOperation.newInsert(RawContacts.CONTENT\uURI)
.withValue(RawContacts.ACCOUNT_类型,null)
.withValue(RawContacts.ACCOUNT\u名称,空)
.build());
添加(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT\uURI)
.带ValueBackReference(contacts contract.Data.RAW\u CONTACT\u ID,RAW contacts insertindex)
.withValue(数据.MIMETYPE,电话.CONTENT\u ITEM\u TYPE)
.带值(电话号码,“9X-XXXXXXXXX”)
.build());
add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,RAW contactInsertIndex)
.withValue(Data.MIMETYPE、StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(StructuredName.DISPLAY_NAME,“Mike Sullivan”)
.build());
ContentProviderResult[]res=getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops);