I'm developing a group of complex Android applications that need to share common state and configuration settings.
For example, see this picture explaining my scenario:
I want that APP 1, APP 2 and APP 3 be able to access (read/write) data to the common storage area. Additionally, I need uninstall protection i.e. I don't want the data to be removed when the user uninstalls any of the apps.
I've already read about SQLite databases, ContentProviders and writing on Internal and External storage, but each of the above mentioned methods have disadvantages as listed below:
- SQLite database: DB is deleted on app uninstall and is private to each app
- ContentProvider: The data is removed when the app with the ContentProvider is removed
- Internal storage: Is private to each app and data is deleted on app uninstall (http://developer.android.com/training/basics/data-storage/files.html#InternalVsExternalStorage)
- External storage: Is unreliable (user may remove SD card)
- Store on server: Not possible, user may not have reliable internet connection
EDIT:
I don't want any dependencies on Google Play Services because I will be distributing the apps via Play Store and as 3rd party downloads.
Please help me out.
External storage: Is unreliable (user may remove SD card)
. Wrong idea. On most devices external memory is build in. If you add a micro SD card then that is removable memory but often named external memory. – Paradise