我是使用syncAdapter的新手。我已经看过google IO video(演讲稿here),我已经阅读了2篇有关它的教程(here和here)。
我也尝试了教程的代码,令人沮丧的是我无法弄清楚如何正确实现syncAdapter。
我认为有些偏好(在清单或xml文件中)都是错误的,但我找不到原因。
我成功地允许添加同步帐户并使用其图标显示它。
但是,我面临一些奇怪的问题,我无法弄清楚它们为什么会发生:允许帐户同步。最终用户无法按下同步按钮。即使我在添加帐户时尝试添加此类内容,它似乎也不会自动同步。
添加帐户后,最终用户可以看到该帐户的奇怪描述:“res / xml / authenticator.xml”。不确定它的设置位置。
点击帐户(添加后),我看到一个空列表(这是一个问题。如何在那里添加更多项目?将来,我还需要与facebook和gmail同步,但是将此自己的contentProvider添加到此列表中,我无法成功。
我不需要进行真正的授权,所以我只是在从AccountAuthenticatorActivity扩展的活动中使用下一个代码:
accountManager.addAccountExplicitly(account, PASSWORD, null);
final Intent intent = new Intent();
intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, USERNAME);
intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, accountType);
setAccountAuthenticatorResult(intent.getExtras());
setResult(RESULT_OK, intent);
finish();
我还尝试使用描述here的内容设置自动同步并启用同步。
答案 0 :(得分:0)
关于1)是的,如果没有互联网连接你就无法同步。原因是(尽管没有适当的同步适配器定义)同步适配器是一个应该用于将主干与本地数据同步的组件。如果没有连接,则启动同步没有意义。实际上只有在理论上才是这样,因为即使没有骨干数据库,我也必须开发一个sybc适配器。
我所做的是编写一个由同步适配器在触发时调用的组件,并在需要同步时由我自己的应用程序调用,即使没有连接