相关疑难解决方法(0)

Android SyncAdapter使用谷歌帐户

我编写了一个SyncAdapter,它接受"com.google"帐户并与appengine Web服务进行同步.使用开发工具同步测试器(在模拟器上)对此进行测试,此同步似乎正常工作.

问题是,它默认不同步.在"帐户和同步"中转到帐户会显示我的Google帐户为空白 - 就好像没有可用的同步服务一样.

我怀疑为了让我的同步显示在"帐户和同步"菜单中,我需要实现我自己的AccountAuthenticator,这与我认为谷歌的AccountAuthenticator必须已经做的完全相同.这不是一项令人兴奋的工作,而且似乎非常不必要.所以:

  • 有没有办法在使用我的SyncAdapter的"帐户和同步"菜单中添加条目但依赖于Google帐户?或者为谷歌帐户添加一个子菜单,以便同步我的appengine服务?

如果不,

  • 有没有办法可以在我写的AccountAuthenticator中重新使用谷歌的AccountAuthenticator?

authentication android

20
推荐指数
1
解决办法
7124
查看次数

SyncAdapter periodicsync()不会触发

我正在试图找出syncAdapter是如何工作的,我使用了sampleSync Adapter作为示例/起点,我基于它进行了第一次测试.唯一的区别是我没有使用默认的联系人提供程序,但我需要一个我自己的.

这个方法与sampleSyncAdapter演示中的方法相同(在AccountAuthenticatorActivity中),我刚刚添加了周期性同步.

    public void finishLogin(String authToken) {
    Log.i(TAG, "finishLogin()");
    final Account account = new Account(mUsername, "be.company.syncAdapterTest");
    if(mRequestNewAccount) {
        mAccountManager.addAccountExplicitly(account, mPassword, null);
        ContentResolver.setIsSyncable(account, MY_AUTHORITY, 1);

        Bundle params = new Bundle();
        params.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, false);
        params.putBoolean(ContentResolver.SYNC_EXTRAS_DO_NOT_RETRY, false);
        params.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false);           
        ContentResolver.addPeriodicSync(account, MY_AUTHORITY, params, 30);
        ContentResolver.setSyncAutomatically(account, MY_AUTHORITY, true);
        ContentResolver.requestSync(account,MY_AUTHORITY,params);
    } else {
        mAccountManager.setPassword(account, mPassword);
    }
    final Intent intent = new Intent();
    intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, "ACCOUNT_TEST");
    intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, "be.company.syncAdapterTest");
    setAccountAuthenticatorResult(intent.getExtras());
    setResult(RESULT_OK, intent);
    finish();
}
Run Code Online (Sandbox Code Playgroud)

在perfomSync()方法中,我有以下方法:

    @Override
public void onPerformSync(Account account, Bundle extras, String authority,
        ContentProviderClient provider, SyncResult syncResult) { …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider android-syncadapter

11
推荐指数
4
解决办法
1万
查看次数