所以,我尝试基于我的内容提供商和服务器的SyncAdapter实现同步。似乎已创建并初始化的所有内容,我可以在帐户和同步中查看我的帐户,还可以看到同步我的内容提供商的复选框。
但我在LogCat中遇到了奇怪的错误:
错误/帐户设置(130):提供商需要权限标签'com.opussync.model.db.opuscontentprovider'
但我确实在清单中设置了标签!
这就是为什么当我尝试检查数据和同步我的帐户中的同步复选框时,我会收到一条消息:
同步目前遇到问题。它很快就会回来
以下是我的清单的主要部分:
<!-- CONTENT PROVIDER -->
<provider
android:name=".model.db.OpusContentProvider"
android:label="BLABLABLA"
android:authorities=".model.db.opuscontentprovider"
></provider>
<!-- SERVICES -->
<service android:name=".service.OpusAccountsSyncService" android:exported="true" android:process=":zencoosync">
<intent-filter >
<action android:name = "android.accounts.AccountAuthenticator"/>
</intent-filter>
<meta-data android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
<service
android:name=".model.syncadapter.SyncService"
android:exported="true"
android:syncable="true"
>
<intent-filter>
<action android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
</service>
答案 0 :(得分:1)
包名称不会自动添加到android:authorities
。
所以,
android:authorities=".model.db.opuscontentprovider"
更改为android:authorities="com.opussync.model.db.opuscontentprovider"
或content://.model.db.opuscontentprovider
作为代码中内容提供商的基本网址。