我正在从 csv 文件导入联系人。我曾尝试使用 applybatch 导入,但它花费了太多时间。所以我使用 bulkinsert 方法插入联系人。但没有创建联系人。下面是代码。
for (int y = 0; y < firstcon.size(); y++) {
if(isCancelled()){
break;
}else{
operations = new ArrayList<ContentProviderOperation>();
condition();
if (newphns.contains(phonecon.get(y).trim())) {
System.out.println("exists");
count --;
} else {
System.out.println("creating");
cvals = new ContentValues();
cvals.put(Data.RAW_CONTACT_ID,"0");
cvals.put(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE);
if (lastcon.get(y).equals("nothing")) {
cvals.put(StructuredName.GIVEN_NAME,firstcon.get(y));
cvals.put(StructuredName.FAMILY_NAME, "");
}else if (firstcon.get(y).equals("nothing")) {
cvals.put(StructuredName.GIVEN_NAME,"");
cvals.put(StructuredName.FAMILY_NAME, lastcon.get(y));
}else{
cvals.put(StructuredName.GIVEN_NAME,firstcon.get(y));
cvals.put(StructuredName.FAMILY_NAME, lastcon.get(y));
}
cvals.put(ContactsContract.CommonDataKinds.Phone.NUMBER,phonecon.get(y));
cvals.put(ContactsContract.CommonDataKinds.Phone.TYPE,ContactsContract.CommonDataKinds.Phone.TYPE_HOME);
values[y] = cvals;
}
}
try {
getContentResolver().bulkInsert(Data.CONTENT_URI, values);//applyBatch(ContactsContract.AUTHORITY, operations);
} catch (Exception e) {e.printStackTrace();}
}
任何建议都受到高度赞赏。