I am developping an application using a ContentProvider. It is declared开发者_如何学运维 in the manifest :
<provider android:name="foor.bar.FooBarProvider"
android:authorities="foo.bar.FoorBarProvider" />
Everything is working fine, I can access the provider. The problem is that I want to create a demo version of my app and I want it to share the same content provider so when the user install the full version, the data is kept in sync. Also, it should be possible to install only the full or the demo version. Therefore, I have to include my content provider in both.
Now, when I try to install both apps, I get a INSTALL_FAILED_CONFLICTING_PROVIDER error message, obviously because both AndroidManifest declare the same content provider.
Is there a way to tell in the Manifest that this content provider should be used only if it doesn't already exists ? Or another workaround ?
A solution would be that the full version migrate the data from a demo content provider to the full version content provider, but I would rather avoid that.
A solution would be that the full version migrate the data from a demo content provider to the full version content provider, but I would rather avoid that.
Here is the likely sequence of events:
- User installs lite version
- User users lite version, storing data
- User upgrades to full version, but you don't copy over the data per your quoted passage above
- User uninstalls the lite version, deleting its data
- User gives you a one-star rating on the Market
You need to clone the data from the lite to the full version on the first run of the full version to avoid this problem.
精彩评论