如何运行使用Google通讯录更新的同步流程?

时间:2010-06-21 05:09:26

标签: android sync contact

当我使用新的google api处理删除联系人时,我遇到了问题

here is my problem

以下是唯一的回复:

您必须运行同步流程,因此会使用Google通讯录进行更新,而不是永久删除。检查已删除的标志

那么我应该怎么做才能运行使用Google通讯录更新的同步流程?

2 个答案:

答案 0 :(得分:1)

此方法可以解决您的问题。但您必须设置帐户。

private void requestSync()
{
    AccountManager am = AccountManager.get(this);
    Account[] accounts = am.getAccounts();

    for (Account account : accounts)
    {
        int isSyncable = ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY);

        if (isSyncable > 0)
        {
            Bundle extras = new Bundle();
            extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
            ContentResolver.requestSync(accounts[0], ContactsContract.AUTHORITY, extras);
        }
    }
}

答案 1 :(得分:0)

如果您尝试删除自己的联系人,也就是放入联系人提供程序的内容,那么在您与自己的服务器同步之前不会删除它,永久删除该行。联系人提供程序旨在执行此操作,以确保同时删除行的服务器和客户端版本。

您对原始问题的回答是错误的。 不与Google通讯录同步。您只能控制与自己服务器的同步。 Google联系人服务器有自己的同步适配器,如果用户选择与Google通讯录同步,则会激活该适配器。

如果您删除了与Google通讯录同步的内容,那么在下次同步之前它将保持“不可见”,此时它将被永久删除。联系人提供程序将自动表现为该事物不存在。如果你看到它,就意味着你在Contacts Provider中做错了什么。您看到的联系人可能有一行没有被正确删除。