2

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

这是我的问题

以下是唯一的回应:

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

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

4

2 回答 2

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);
        }
    }
}
于 2010-08-12T01:12:29.037 回答
0

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

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

如果您删除了正在与 Google 通讯录同步的内容,那么它将保持“不可见”状态,直到下一次同步,此时它将被永久删除。Contacts Provider 会自动表现得好像事物不存在一样。如果您看到它,则表示您在 Contacts Provider 中做错了什么。您看到的联系人可能有一行未正确删除。

于 2012-04-03T00:25:26.967 回答