在Android中以编程方式向两个gmail源添加联系人

在Android中以编程方式向两个gmail源添加联系人,android,android-contentprovider,android-contacts,google-contacts-api,contactscontract,Android,Android Contentprovider,Android Contacts,Google Contacts Api,Contactscontract,我有两个gmail账户(abc@gmail.com及xyz@gmail.com)与我的Android同步。如何添加应同步到两个帐户的联系人 使用下面提到的代码,我只能将联系人添加到一个gmail帐户 private void addContact() { ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); op_list.add(ContentP

我有两个gmail账户(abc@gmail.com及xyz@gmail.com)与我的Android同步。如何添加应同步到两个帐户的联系人

使用下面提到的代码,我只能将联系人添加到一个gmail帐户

private void addContact() {
ArrayList<ContentProviderOperation> op_list = new ArrayList<ContentProviderOperation>(); 
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) 
        .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, "com.google") 
        .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, "abc@gmail.com") 
        .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, "18000000001")
        .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(); 
}}
private void addContact(){
ArrayList op_list=新建ArrayList();
op_list.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(contacts contract.raw contacts.ACCOUNT_TYPE,“com.google”)
.withValue(contacts contract.raw contacts.ACCOUNT\u NAME,“abc@gmail.com") 
.build());
//姓名
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_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());
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_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.CommonDataKinds.Phone.NUMBER,“18000000001”)
.withValue(contacts contract.commonDataTypes.Phone.TYPE,Phone.TYPE\u HOME)
.build());
op_list.add(ContentProviderOperation.newInsert(Data.CONTENT_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,op_列表);
}捕获(例外e){
e、 printStackTrace();
}}

您不能添加自动同步到2个帐户的
原始联系人。您只需将同一联系人添加到两个帐户中两次。

android中没有其他方法。

这可能是可能的,但我认为您必须使用Google API的Web服务,而不是客户端库。在这种情况下,您可以尝试登录并同意必要的权限,以便将您想要的联系人同步/添加到其他帐户。