冲突的内容提供商

时间:2010-08-26 19:26:56

标签: java android android-contentprovider

我正在使用ContentProvider开发应用程序。它在清单中声明:

<provider android:name="foor.bar.FooBarProvider"
          android:authorities="foo.bar.FoorBarProvider" />

一切正常,我可以访问提供商。问题是我想创建我的应用程序的演示版本,我希望它共享相同的内容提供程序,因此当用户安装完整版本时,数据保持同步。此外,应该可以只安装完整版或演示版。因此,我必须将我的内容提供商包含在两者

现在,当我尝试安装这两个应用时,我收到 INSTALL_FAILED_CONFLICTING_PROVIDER 错误消息,显然是因为AndroidManifest都声明了相同的内容提供商。

有没有办法在Manifest中说明只有在内容提供程序尚不存在的情况下才应该使用它?还是另一种解决方法?

解决方案是完整版将数据从演示内容提供商迁移到完整版内容提供商,但我宁愿避免这种情况。

1 个答案:

答案 0 :(得分:5)

  

解决方案就是充分   版本从演示中迁移数据   内容提供商到完整版   内容提供商,但我宁愿   避免这样做。

以下是可能的事件序列:

  1. 用户安装精简版
  2. 用户用户精简版,存储数据
  3. 用户升级到完整版,但不按照上面引用的段落复制数据
  4. 用户卸载精简版,删除其数据
  5. 用户为您提供市场的一星评级
  6. 您需要在首次运行完整版时将数据从精简版克隆到完整版,以避免此问题。