Articles of android syncadapter

在Android应用的帐户和同步菜单下显示设置

我正在为Android应用程序实现一个syncadapter,并希望在“帐户和同步”菜单下对该帐户进行设置。 我已经在DropBox应用程序中看到了这一点(如下所示),但我无法find有关如何执行此操作的文档。 我添加了帐户,只想在此菜单中添加指向帐户设置的链接。

Android SyncAdapter自动初始化同步

我的应用程序有一个SyncAdapter ,还有一个AccountManager可以将我的应用程序帐户添加到Android帐户管理器。 我向帐户管理器添加帐户时的代码如下所示: Bundle data = new Bundle(5); data.putString(_PEOPLE_ID, people_id); data.putString(_FIRST_NAME, first_name); data.putString(_LAST_NAME, last_name); data.putString(_PLAN, plan); data.putString(_BIRTHDAY, birthday); Account account = new Account(username, _ACCOUNT_TYPE); try { boolean created; created = _account_manager.addAccountExplicitly(account, _cryptography.encrypt(_SEED, password), data); response.accountCreated(created); _account_manager.setAuthToken(account, _TOKEN_TYPE, session_token); _model.updateActiveAccount(people_id, username, password); SharedPreferences.Editor settings = _settings.edit(); settings.putString(_ACCOUNT_TYPE, account.name); settings.putString(_TOKEN_TYPE, session_token); settings.commit(); // Tells the content provider […]

使用SyncAdapters时登录两次

我正在使用SyncAdapter创建一个新的Android应用程序来处理数据库同步。 我有一切就绪,应用程序工作正常,但我注意到我登录了两次。 当AuthenticatorActivity类(它扩展AccountAuthenticatorActivity )validation用户和密码时,首次登录。 如果用户和密码正确,则AuthenticatorActivity会执行以下操作: 如果account不存在,则使用mAccountManager.addAccountExplicitly()创建account 使用intent.putExtra(AccountManager.KEY_AUTHTOKEN, authToken);保存intent.putExtra(AccountManager.KEY_AUTHTOKEN, authToken); 这基本上是从Android样本中复制/粘贴的,所以我猜它没关系。 问题是当SyncAdapter启动并使用时 authtoken = mAccountManager.blockingGetAuthToken(account, AuthenticatorActivity.PARAM_AUTHTOKEN_TYPE, true); getAuthToken() Authenticator类中扩展AbstractAccountAuthenticator的getAuthToken()方法。 在这个方法中,我再次访问登录端点。 从那时起,在authToken到期之前不会再次命中登录端点。 这不是困扰我的东西,但我想知道是否有办法避免两次登录。

默认情况下,在app中启用同步选项

我使用odoo移动框架 。 如何在应用启动时启用同步选项? (默认情况下禁用该选项。)

Android SyncAdapter用例

我们目前在做什么? 我们在使用Web服务(RESTful)公开的服务器上有一些结构化的文本数据。 我的应用程序定期轮询此服务器(AlarmManagerService)以获取数据并将其保存在本地数据库(sqlite)上。 此外,预先对用户进行身份validation和授权以进行访问。 问题: SDK中有一个SyncAdapter / AccountManager类,我想知道它是否可以在我的应用程序中用于实现上述同步? 如果是,后端需要什么样的基础设施才能支持使用此适配器进行同步设置? 链接到文章等提供使用此适配器和其他信息的详细信息表示赞赏。

为什么AccountManager.addAccount明显返回false?

Google的Android文档( http://developer.android.com/reference/android/accounts/AccountManager.html#addAccountExplicitly(android.accounts.Account,java.lang.String,android.os.Bundle) )说: 返回 如果帐户已成功添加,则为True;如果帐户已存在,则为false,帐户为空,或发生其他错误 我变得虚假。 具体来说,还有哪些其他错

自己的Android同步适配器?

Android 2.0的新闻稿指出,新版本支持同步适配器,因此电子邮件和日历不仅可以与gmail和交换同步。 但是,在线没有可用的信息如何编写这样的同步适配器。 有没有人试过它和一些示例代码可用?

当SyncAdapter在android上运行同步时?

假设我的应用程序实现了SyncAdapterfunction,并没有定义周期性同步。 在这种情况下会发生同步吗? 我可能会想到的第一个场景是本地ContentProvided /数据库内容更改。 什么是服务器更改? SyncAdapter将如何了解这一点?

从设置中隐藏同步适配器的虚拟帐户

我创建了一个带有虚拟帐户的同步适配器,我不希望它出现在“设置”应用程序的“帐户”列表中,也不希望用户按下“设置”中的“添加帐户”按钮。 我在同步适配器定义中尝试了android:userVisible =“false”,但仍然显示该帐户。 我在仿真器和3个物理设备上试过这个。 一切都正常工作,它同步我需要的所有数据,唯一不对的是我在列表上看到帐户,我不想。 我的authenticator.xml是: 我的syncadapter.xml是: 我添加我的adpater像这样: Account account = AuthenticatorService.GetAccount(); AccountManager accountManager = (AccountManager) context .getSystemService(Context.ACCOUNT_SERVICE); if (accountManager.addAccountExplicitly(account, null, null)) { ContentResolver.setIsSyncable(account, StubProvider.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, StubProvider.AUTHORITY, true); ContentResolver.addPeriodicSync(account, StubProvider.AUTHORITY, new Bundle(), SYNC_FREQUENCY); } 我在帐户列表和添加帐户列表中获取帐户。 请帮助! 🙂

Android中的向上同步和向下同步?

我正在开发一个需要非常好的同步机制的销售点应用程序。 我们有Magento数据库。安卓设备有SQLite本地Db。 现在我们需要以下列方式进行同步: 本地——同步到—————>服务器(向上同步) 服务器——同步到—————>本地(向下同步) 有两件事: 1)写入(如何保重??) 对于我在本地进行的每个更改,它将直接将本地同步到服务器 2)回写(如何保养???) 每当服务器发生变化时,我们都需要将所有本地服务器与服务器同步。 因此,任务是:识别服务器更新 并同步我们的当地人。 就像有4个设备在商店中运行,我们通过一个设备添加了一个新客户。 现在我希望其他三个设备本地数据库也更新了有关该客户和服务器的信息也已更新。 我听说过后台线程并在一段时间后运行线程。 但是,这样做的最佳方法是什么,不会影响应用程序。 此外,所有Big Retail商店都使用同步流程。 他们用的是什么? 任何帮助表示赞赏。