【问题标题】:Add a contact to two gmail sources programmatically in Android在 Android 中以编程方式将联系人添加到两个 gmail 源
【发布时间】:2015-12-18 19:50:22
【问题描述】:

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

使用下面提到的代码,我只能将联系人添加到一个 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(); 
}}

【问题讨论】:

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

标签: android android-contentprovider android-contacts google-contacts-api contactscontract


【解决方案1】:

您无法添加自动同步到 2 个帐户的 raw_contact。您只需将同一联系人添加到两个帐户两次。 android中没有其他办法。

【讨论】:

    猜你喜欢
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2011-12-17
    • 1970-01-01
    • 2014-01-10
    相关资源
    最近更新 更多