Android:以编程方式创建的联系人未与Gmail帐户同步

问题描述 投票:3回答:1

我可以使用以下方式在My App中创建新联系人:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
        .withValue(RawContacts.ACCOUNT_TYPE, null)
        .withValue(RawContacts.ACCOUNT_NAME, null).build());
ops.add(ContentProviderOperation
        .newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
                rawContactInsertIndex)
        .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
        .withValue(Phone.NUMBER, "9X-XXXXXXXXX").build());
ops.add(ContentProviderOperation
        .newInsert(Data.CONTENT_URI)
        .withValueBackReference(Data.RAW_CONTACT_ID,
                rawContactInsertIndex)
        .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
        .withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
        .build());
try {
    ContentProviderResult[] res = getContentResolver().applyBatch(
            ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (OperationApplicationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

它工作正常,我可以看到联系人已创建,但当我将我的联系人与我的Gmail帐户同步时,我在Gmail联系人中看不到。

注意:如果我使用设备的原生联系人应用创建联系人并与Gmail同步,我可以在Gmail中看到该联系人。

android contacts
1个回答
2
投票

一些我怎么想出来的......

你可以用

ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
        .withValue(RawContacts.ACCOUNT_TYPE, "com.google")
        .withValue(RawContacts.ACCOUNT_NAME, "[email protected]")
        .build());

其中,com.google是帐户类型,[email protected]是您要同步的帐户ID。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.