0

我正在从 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();}    
}

任何建议都受到高度赞赏。

4

0 回答 0