4
我正在开发一个使用ContentProvider的应用程序。它在清单中声明:冲突的内容提供商
<provider android:name="foor.bar.FooBarProvider"
android:authorities="foo.bar.FoorBarProvider" />
一切工作正常,我可以访问提供商。问题是我想创建我的应用程序的演示版本,我希望它共享相同的内容提供程序,因此当用户安装完整版本时,数据保持同步。另外,应该可以只安装完整版或演示版。因此,我必须包含我的内容提供商均为。
现在,当我尝试安装两个应用程序,我得到一个INSTALL_FAILED_CONFLICTING_PROVIDER错误消息,显然是因为这两个AndroidManifest声明相同的内容提供商。
有没有办法在Manifest中告诉,只有在内容提供者不存在的情况下才应该使用这个内容提供者?还是另一种解决方法?
解决方案是完整版将数据从演示内容提供者迁移到完整版内容提供者,但我宁愿避免这种情况。
那么我想要的是内容提供商安装一次(由lite或全部,无论先安装),然后重新使用,如果用户安装另一个版本。 – Julien 2010-08-27 08:12:57
@ Julien:那是不可能的。内容提供者属于一个应用程序。他们卸载应用程序,他们卸载内容提供商。 – CommonsWare 2010-08-27 09:05:18
好的,我会继续进行数据迁移和两个内容提供者。谢谢 – Julien 2010-08-27 13:46:43