SyncAdapter停止同步

时间:2014-09-08 17:42:31

标签: android android-syncadapter

我们的SyncAdapter实现与Android 4.4.4版不同步。适用于较低的API设备。

我们的应用使用AbstractThreadedSyncAdapter与服务器进行通信。我已经使用许多不同的设备和模型对其进行了测试,从API级别10开始运行android。我们最近购买了两台基于Android 4.4.4的设备(Moto E,Nexus 5),并开始遇到SyncAdapter问题。这是xml配置:

<sync-adapter 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="our.provider"
    android:accountType="our.authenticator"
    android:userVisible="false"
    android:allowParallelSyncs="false"
    android:isAlwaysSyncable="true"
    android:supportsUploading="true" />

即使我放了手动和加急标志,同步也不会触发:

Bundle bundle = new Bundle();
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
ContentResolver.requestSync(SyncAdapter.dummyAccount(context), SYNC_PROVIDER, bundle);

我正在通过WiFi尝试此功能并连接电源线以解除与电源使用相关的任何优化问题。目标SDK设置为最新版本:

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="20" />

我有all the necessary permissions

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.READ_SYNC_STATS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />

有一件事让我感到不同寻常。设备报告API级别= 19,但SDK说API 19相当于android 4.4。 2 ,而不是android 4.4.4:

Android 4.4.2 = API level 19

这可能与此问题有关吗?

很抱歉没有更多帮助或描述,但我真的没有关于如何继续调试此问题的线索。提前谢谢。

修改

进一步的想法:

1 个答案:

答案 0 :(得分:4)

虽然不是答案,this可能有所帮助。据我所知,它是一个完全最小的SyncAdapter。

该示例具有AccountAuthenticator组件。只有在调用其中一个 getAuthToken 方法时才需要AccountAuthenticator。

如评论中所述,我尝试使用此最小示例复制您的问题,但无法执行此操作。也许你可以从它开始并构建失败的东西。