我正在开发一个使用ContentProvider的应用程序。它在清单文件中声明如下:
<provider android:name="foor.bar.FooBarProvider"
android:authorities="foo.bar.FoorBarProvider" />
一切都正常,我可以访问提供者。问题在于,我想创建一个演示版的应用程序,并希望它共享相同的内容提供程序,以便用户安装完整版本后,数据保持同步。此外,应该可以仅安装完整版或演示版。因此,我必须在两个中包含我的内容提供程序。
现在,当我尝试安装这两个应用程序时,我会收到“INSTALL_FAILED_CONFLICTING_PROVIDER”错误消息,显然是因为两个AndroidManifest声明了相同的内容提供程序。
是否有一种方法可以在清单中说明只有在不存在内容提供程序时才使用该内容提供程序?还有其他解决方法吗?
一个解决方法是完整版将数据从演示内容提供程序迁移到完整版内容提供程序,但我宁愿避免这种情况。