有人知道如何使用编程将多个联系人保存到android手机上吗?



我正在开发一个基于联系人的应用程序,它保存从web服务器获取的联系人列表到用户的电话联系人。是否可以将多个联系人保存为用户的电话联系人?如果是,请提供详细信息。

在另一篇文章中找到,但应该可以工作。

private void addContact() {
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); 
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) 
        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) 
        //.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DEFAULT) 
        .build()); 
// first and last names 
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
        .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
        .withValue(StructuredName.GIVEN_NAME, "Second Name") 
        .withValue(StructuredName.FAMILY_NAME, "First Name") 
        .build()); 
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
        .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
        .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "09876543210")
        .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, Phone.TYPE_HOME)
        .build());
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
        .withValueBackReference(Data.RAW_CONTACT_ID, 0)
        .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Email.DATA, "abc@xyz.com")
        .withValue(ContactsContract.CommonDataKinds.Email.TYPE, Email.TYPE_WORK)
        .build());
try{ 
    ContentProviderResult[] results = getContentResolver().applyBatch(ContactsContract.AUTHORITY, op_list); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 
}

最新更新