Как запустить процесс синхронизации, который обновляется с помощью контактов Google? - PullRequest
2 голосов
/ 21 июня 2010

Когда я имею дело с удалением контакта с помощью нового API Google, у меня возникает проблема

вот моя проблема

Ниже приводится единственный ответ:

Вам нужно запустить процесс синхронизации, чтобы он обновлялся с помощью контактов Google, после чего он будет удален навсегда. Проверить на удаленный флаг

Так что же мне делать, чтобы запустить процесс синхронизации, который обновляется с помощью контактов Google?

Ответы [ 2 ]

1 голос
/ 12 августа 2010

Этот метод может разрешить вашу проблему. но вы, должно быть, настроили свою учетную запись.

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);
        }
    }
}
0 голосов
/ 03 апреля 2012

Если вы пытаетесь удалить свой собственный контакт, то есть что-то, что вы помещаете в провайдер контактов, то он не будет удален, пока вы не выполните синхронизацию со своим собственным сервером, который затем должен удалить ряд постоянно. Поставщик контактов предназначен для этого, чтобы гарантировать одновременное удаление версии строки на сервере и на клиенте.

Ответ, который вы получили на свой первоначальный вопрос, был ошибочным. Вы не синхронизируются с контактами Google. Вы управляете синхронизацией только с вашим собственным сервером. Сервер контактов Google имеет собственный адаптер синхронизации, который активируется, если пользователь выбирает синхронизацию с контактами Google.

Если вы удалите что-то, что синхронизируется с контактами Google, оно останется «невидимым» до следующей синхронизации, после чего оно будет удалено безвозвратно. Поставщик контактов автоматически будет действовать так, как будто эта вещь не существует. Если вы видите это, это означает, что вы что-то делаете неправильно в поставщике контактов. К контакту, который вы видите, может быть прикреплена строка, которая была удалена неправильно.

...