【问题标题】:Android :Programmatically created contact is not syncing with Gmail AccountAndroid:以编程方式创建的联系人未与 Gmail 帐户同步
【发布时间】:2017-12-30 20:40:14
【问题描述】:

我可以在“我的应用”中使用以下方法创建新联系人:

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】:

    我是怎么想出来的……

    你可以使用

    ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
            .withValue(RawContacts.ACCOUNT_TYPE, "com.google")
            .withValue(RawContacts.ACCOUNT_NAME, "xxxxx@gmail.com")
            .build());
    

    其中,com.google 是帐户类型,xxxxx@gmail.com 是您要与之同步的帐户 ID。

    谢谢

    【讨论】:

    • 如果我想在自定义账户下同步联系人呢??我使用了相同的编码,但我添加的联系人没有显示在我的帐户下.. :(
    • 自定义帐户是什么意思?
    • 自定义账户的意思是:如果我安装了ma app name XXX,群组将在联系人中创建为XXX,并且服务器中的所有联系人都将仅添加到该群组中。
    • 因此您只想从自己的应用程序服务器获取联系信息,并希望添加一个名为您应用程序名称的组。对吗?
    • 请对此提出问题。我不能在这里为您提供详细信息,因为空间不足,并且与此线程无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2016-12-26
    相关资源
    最近更新 更多