Android 如何以编程方式添加联系人
如何使用编程添加联系人我正在尝试:Android 如何以编程方式添加联系人,android,Android,如何使用编程添加联系人我正在尝试: public void addContact(Contact contact) ContentValues values = new ContentValues(); values.put("contact_id", contact.getContactId()); values.put("lookup", contact.getLookupKey()); values.put("mimetype", StructuredNam
public void addContact(Contact contact)
ContentValues values = new ContentValues();
values.put("contact_id", contact.getContactId());
values.put("lookup", contact.getLookupKey());
values.put("mimetype", StructuredName.CONTENT_ITEM_TYPE);
values.put("data1", contact.getStructuredName().getDisplayName());
values.put("data2", contact.getStructuredName().getGivenName());
values.put("data3", contact.getStructuredName().getFamilyName());
values.put("data4", contact.getStructuredName().getPrefix());
values.put("data5", contact.getStructuredName().getMiddleName());
values.put("data6", contact.getStructuredName().getSuffix());
context.getContentResolver().insert(Data.CONTENT_URI, values);
}
最好的方法是使用
ContentProviderOperation
,而不是使用ContentValues
。使用该功能:
private void addContact() {
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
operationList.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
// first and last names
operationList.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());
operationList.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());
operationList.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, operationList);
}catch(Exception e){
e.printStackTrace();
}
}
private void addContact(){
ArrayList operationList=新建ArrayList();
operationList.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT\u URI)
.withValue(contacts contract.raw contacts.ACCOUNT_TYPE,null)
.withValue(contacts contract.raw contacts.ACCOUNT\u NAME,null)
.build());
//姓名
operationList.add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,0)
.withValue(Data.MIMETYPE、StructuredName.CONTENT\u ITEM\u TYPE)
.withValue(StructuredName.GIVEN_NAME,“第二个名称”)
.withValue(StructuredName.FAMILY_NAME,“名字”)
.build());
operationList.add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,0)
.withValue(contacts contract.Data.MIMETYPE、contacts contract.commondatatypes.Phone.CONTENT\u ITEM\u TYPE)
.带值(contacts contract.commondatatypes.Phone.NUMBER,“09876543210”)
.withValue(contacts contract.commonDataTypes.Phone.TYPE,Phone.TYPE\u HOME)
.build());
operationList.add(ContentProviderOperation.newInsert(Data.CONTENT\u URI)
.带ValueBackReference(Data.RAW\u CONTACT\u ID,0)
.withValue(ContactsContact.Data.MIMETYPE、ContactsContact.CommonDataTypes.Email.CONTENT\u ITEM\u TYPE)
.withValue(contacts contract.commondatatypes.Email.DATA,“abc@xyz.com")
.withValue(contacts contract.commondatatypes.Email.TYPE,Email.TYPE\u WORK)
.build());
试试{
ContentProviderResult[]results=getContentResolver().applyBatch(ContactsContract.AUTHORITY,operationList);
}捕获(例外e){
e、 printStackTrace();
}
}
注意:请将其导入类文件导入android.provider.contacts contract.Data代码>
祝你好运。那就试试吧。如果出现错误,请将其张贴在此处。您要将联系人添加到哪里。。?您正在尝试将联系人从android contacts添加到您的应用程序中,还是正在尝试将联系人添加到android contact?可能存在重复的