读取内容提供商标签时出错

时间:2011-04-22 09:12:52

标签: android android-contentprovider android-syncadapter

所以,我尝试基于我的内容提供商和服务器的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>

1 个答案:

答案 0 :(得分:1)

包名称不会自动添加到android:authorities

所以,

  • android:authorities=".model.db.opuscontentprovider"更改为android:authorities="com.opussync.model.db.opuscontentprovider"
  • 使用content://.model.db.opuscontentprovider作为代码中内容提供商的基本网址。