繁体   English   中英

Android同步适配器 - 手动同步

[英]Android Sync Adapter - manual Sync

我正在尝试创建一个同步适配器几个小时。

同步设置始终处于停用状态。 为什么?

AndroidManifest

    <provider
        android:name="com.example.authenticating.DataProvider"
        android:authorities="@string/content_authority"
        android:exported="false"
        android:multiprocess="true"
        android:syncable="true" />

    <service
        android:name="com.example.authenticating.AuthenticatationService"
        android:exported="true"
        android:process=":auth">
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>
        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/authenticator" />
    </service>

syncadapter.xml

    <sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="@string/content_authority"
    android:accountType="@string/sync_account_type"
    android:userVisible="false"
    android:supportsUploading="false"
    android:allowParallelSyncs="false"
    android:isAlwaysSyncable="true" />

添加适配器

    Account account = new Account(getString(R.string.sync_account_name), getString(R.string.sync_sync_account_type_name));
    ContentResolver.setIsSyncable(account, getString(R.string.content_authority), 1);
    accountManager.addAccountExplicitly(account, "", null);

在此输入图像描述

如果要执行手动同步,则必须致电:

Bundle settings = new Bundle();
settings.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
settings.putBooleanContentResolver.SYNC_EXTRAS_EXPEDITED, true);
ContentResolver.requestSync(mAccount, AUTHORITY, settingsBundle);

如果要启用同步适配器,则需要将auto-sync设置为true,即:

ContentResolver.setSyncAutomatically(mAccount, AUTHORITY, true);

这将在您的帐户下设置检查并启用同步适配器,以便在设备获得网络痒时运行(请参阅此处 )确保向您的清单添加以下权限:

android.permission.WRITE_SYNC_SETTINGS

文档没有明确说明任何内容,但据我所知,即使您没有“启用”同步适配器作为“自动同步”,它仍然可以与您在其上设置的手动同步或定期同步一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM