小编rus*_*ain的帖子

Android - 在设置同步适配器时启用自动同步

我正在编写一个使用同步适配器来同步数据的应用程序.

我已经阅读了文档,我很确定我理解它是如何工作的.我的大部分同步适配器都是按照Udi Cohen写的伟大指南来完成的.

但是,我确实有一个问题似乎无法解决,而且在安装我的应用程序时会自动启用同步.

当我的应用程序运行时,它会创建一个同步适配器和一个帐户,完成您希望它完成的所有工作,这很棒.但是,如果我转到"设置">"帐户">"我的应用程序",则同步已关闭.无论如何我可以让它自动启用吗?

帐户>'我的应用程序'的屏幕截图

设置同步适配器时,我的代码如下所示:

if(accountManager.addAccountExplicitly(account,null,null))
{
    // Inform the system that this account supports sync
    ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);

    // Inform the system that this account is eligible for auto sync
    ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);

    // Recommend a schedule for auto sync
    ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), SYNC_FREQUENCY);

    newAccount = true;
}
Run Code Online (Sandbox Code Playgroud)

通过阅读同步适配器,我认为这ContentResolver.setSyncAutomatically()是用于自动启用同步的正确方法.

我也试过设置,ContentResolver.setMasterSyncAutomatically(true);但似乎没有任何影响.

android.permission.WRITE_SYNC_SETTINGS在AndroidManifest中声明了权限,所以这不是问题所在.我的项目中也有同步服务和xml文件.我在下面附上了这些代码.

还有其他人有过类似的问题吗?这可能是权限问题吗?如果有人有任何建议我会很乐意尝试.谢谢.

AndroidManifest.xml中

<service
    android:name=".syncadapter.CalendarSyncService"
    android:exported="true"
    android:process=":sync">
    <intent-filter>
        <action android:name="android.content.SyncAdapter"/>
    </intent-filter>
    <meta-data
        android:name="android.content.SyncAdapter"
        android:resource="@xml/calendar_syncadapter"/>
</service>
Run Code Online (Sandbox Code Playgroud)

syncadapter.xml

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

java android android-syncadapter

5
推荐指数
1
解决办法
3846
查看次数

标签 统计

android ×1

android-syncadapter ×1

java ×1