繁体   English   中英

冲突的内容提供商

[英]Conflicting content providers

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

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

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

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

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

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

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

以下是可能的事件序列:

  1. 用户安装lite版本
  2. 用户用户精简版,存储数据
  3. 用户升级到完整版,但您不会根据上面的引用段落复制数据
  4. 用户卸载lite版本,删除其数据
  5. 用户为您提供市场的一星级评级

您需要在完整版的第一次运行时将数据从lite克隆到完整版以避免此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM