Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我想根据身份证号码向联系人中添加信息,但总是添加到错误的姓名中。_Java_Android_Contact - Fatal编程技术网

Java 我想根据身份证号码向联系人中添加信息,但总是添加到错误的姓名中。

Java 我想根据身份证号码向联系人中添加信息,但总是添加到错误的姓名中。,java,android,contact,Java,Android,Contact,我想根据身份证号码在联系人中添加电话号码,但总是添加到错误的姓名中。谁能告诉我发生这种事的原因吗。它在虚拟设备和索尼手机上运行良好,但正如我在上面一款新的三星moble手机上所说的,它出现了一个错误。我可以清楚地确认身份证号码是正确的 以下是源代码: ContentValues values = new ContentValues (); values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, contactID); v

我想根据身份证号码在联系人中添加电话号码,但总是添加到错误的姓名中。谁能告诉我发生这种事的原因吗。它在虚拟设备和索尼手机上运行良好,但正如我在上面一款新的三星moble手机上所说的,它出现了一个错误。我可以清楚地确认身份证号码是正确的 以下是源代码:

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