Как включить синхронизацию пользовательских учетных записей в Android? - PullRequest
5 голосов
/ 13 июля 2010

Я пишу свой собственный SyncAdapter для устройств Android, которые должны синхронизировать информацию телевизионного вещания с устройством, но столкнулись с проблемой, когда флажок Синхронизировать «mydata» не отображается в разделе «Данные и синхронизация» в настройках учетной записи.

Я реализовал свой собственный SyncAdapter и правильно определил его в xml:

Вот мой sync.xml:

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="com.example.tv.programs"
    android:accountType="com.example.tv.sync"
    android:supportsUploading="false"
    android:userVisible="true"
/>

Соответствующая часть манифеста Android, где я определяю свой сервис синхронизации ипровайдер:

<service android:name=".sync.ProgramSynchronizationService" android:exported="true" android:process=":programs">
    <intent-filter>
        <action android:name="android.content.SyncAdapter" />
    </intent-filter>
    <meta-data
        android:name="android.content.SyncAdapter"
        android:resource="@xml/sync" />
</service>

<provider android:name="com.example.tv.providers.ProgramContentProvider" 
    android:authorities="com.example.tv.programs" />

Я что-то не так делаю, так как в разделе «Данные и синхронизация» ничего не видно?

Ответы [ 2 ]

10 голосов
/ 14 января 2011

В дополнение к настройке синхронизирующего адаптера вам также необходимо позвонить (возможно, при запуске программы):

ContentResolver.setIsSyncable(account, "com.example.tv.programs", 1)
3 голосов
/ 01 февраля 2012

Чтобы добавить к этому, если вы хотите включить синхронизацию автоматически, вы можете сделать

ContentResolver.setSyncAutomatically(account, "com.example.tv.programs",true);
...