Android 如何运行使用Google联系人更新的同步过程?

Android 如何运行使用Google联系人更新的同步过程?,android,sync,contact,Android,Sync,Contact,当我使用新的谷歌api删除联系人时,我遇到了问题 以下是唯一的答复: 你必须运行一个同步过程,所以它会用谷歌联系人更新,然后会被永久删除。检查删除的标志 那么,我应该怎么做才能运行一个同步过程,用谷歌联系人进行更新呢?这个方法可以解决您的问题。但你一定已经设置了帐户 private void requestSync() { AccountManager am = AccountManager.get(this); Account[] accounts = am.getAccou

当我使用新的谷歌api删除联系人时,我遇到了问题

以下是唯一的答复:

你必须运行一个同步过程,所以它会用谷歌联系人更新,然后会被永久删除。检查删除的标志


那么,我应该怎么做才能运行一个同步过程,用谷歌联系人进行更新呢?

这个方法可以解决您的问题。但你一定已经设置了帐户

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);
        }
    }
}

如果您试图删除自己的联系人,即您放入联系人提供程序中的内容,则在您与自己的服务器同步之前,该联系人不会被删除,然后服务器将永久删除该行。Contacts Provider就是这样设计的,以确保同时删除行的服务器和客户端版本

你对最初问题的回答是错误的。你不能与谷歌联系人同步。您只能控制与自己的服务器的同步。Google Contacts服务器有自己的同步适配器,如果用户选择与Google Contacts同步,该适配器将被激活

如果你删除了与谷歌联系人同步的内容,那么它将保持“不可见”,直到下一次同步,此时它将被永久删除。联系人提供程序将自动运行,就好像该对象不存在一样。如果你看到它,这意味着你在联系人提供商中做了一些不正确的事情。您看到的联系人可能有一行未正确删除