Articles of android syncadapter

在android中联系同步适配器

我想在我的应用程序中使用同步适配器来同步本机和第三方联系人(FB除外)与服务器。 (只有客户端到服务器单向同步) 我有两个疑问 – 1)如果设备中有多个同步适配器,并且如果脏位已被另一个同步适配器清除,我的同步适配器是否能够立即检测到联系人更改/更新。 2)我用过 ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true); 将联系人与服务器同步。 它确实每30秒启动一次同步。 但是我想让它在添加或删除或更新联系人时立即得到通知以启动perfromSync操作。 我是否也需要使用观察者?

SyncAdapter替代品

我认为众所周知,在最糟糕的主题列表中,SyncAdapter像钻石一样shiny! 根据http://udinic.wordpress.com/2013/07/24/write-your-own-android-sync-adapter/ SyncAdapter带来4个主要好处: A)电池效率B)接口C)内容意识D)重试机制; 如果在任何情况下都需要将sqlite数据库与远程SQL数据库同步,并且不需要这些优势 ,那么还有什么其他选择**?它很容易管理数据库之间的服务与PHP,我为上传部分同步过程做了这个,但是对于下载部分我觉得如果我使用查询填充方法很傻,因为在不久的将来远程数据库可能会变得越来越大。我想到的唯一解决方案就是自己编写同步活动/服务,但我不知道如何访问SQLite数据库/表的最后更新日期(除了在每个表中指定_date),以检查是否有必要再次同步? 我觉得我的头在两个地方之间!

SyncAdapter中提交的SharedPreference未在Activity中更新?

成功同步后,我正在更改并在SyncAdapter中提交SharedPreference,但是当我在Activity中访问首选项时,我没有看到更新的值(相反,我看到的是旧值)。 我究竟做错了什么? 不同的背景? 我更新偏好的SyncAdapter: class SyncAdapter extends AbstractThreadedSyncAdapter { private int PARTICIPANT_ID; private final Context mContext; private final ContentResolver mContentResolver; public SyncAdapter(Context context, boolean autoInitialize) { super(context, autoInitialize); mContext = context; mContentResolver = context.getContentResolver(); } public SyncAdapter(Context context, boolean autoInitialize, boolean allowParallelSyncs) { super(context, autoInitialize, allowParallelSyncs); mContext = context; mContentResolver = context.getContentResolver(); } @Override public […]

在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和交换同步。 但是,在线没有可用的信息如何编写这样的同步适配器。 有没有人试过它和一些示例代码可用?