Base de datos de host con la aplicación de no hacer nada tan lite y pro puede acceder

Como muchos otros, tendré una versión "lite" y una versión "pro" de mi aplicación. Utilizan una base de datos, que estará en el almacenamiento interno. Me gustaría que un usuario pudiera comprar la versión profesional e instalarla sin perder la base de datos.

Solución parcial: He visto otros mensajes sobre cómo tener varias aplicaciones que utilizan la misma base de datos. Esencialmente, esto requiere dos cosas:

  1. Ambos manifestan el mismo android: sharedUserId en el manifiesto,
  2. Una de las aplicaciones debe abrir la base de datos utilizando el contexto de la otra aplicación.

He intentado esto y, sí, funciona!

El problema: La desinstalación de la versión lite elimina el db. Siga esto: el usuario instala la versión lite. La versión lite crea la base de datos y felizmente crea y guarda datos en él. Luego decide instalar el pro. La versión pro accede al db creado por el lite y todo funciona bien. Finalmente, desactiva la luz porque ya no la necesita. Ahora, el profesional dejará de funcionar porque el db fue eliminado por Android cuando la versión lite fue desinstalada.

¿Qué solución? Una solución que viene a la mente es tener una tercera aplicación que posee la base de datos. Se trata de una aplicación "no hacer nada" que simple se instala y tiene el mismo nombre que el paquete. No tendría UI y de hecho nunca se ejecutará. A continuación, las aplicaciones lite y pro se pueden instalar o desinstalar sin ningún efecto en el db.

¿Es esta una buena idea? ¿Hay una mejor manera (aparte de crear un proveedor para el db)? Si este es un enfoque razonable, ¿cómo puedo crear una aplicación sin IU que no sea un servicio?

Suena como usted decidió ir con la compra en la aplicación de la aplicación profesional, sin embargo esto también puede haber sido una solución viable.

Desde tu publicación tienes una aplicación lite que contiene la base de datos. Cuando el usuario compra la aplicación profesional, tiene la aplicación pro acceder a la base de datos lite para leer / escribir. Si estas suposiciones son verdaderas, ¿por qué no hacer lo siguiente:

  1. Cuando la aplicación pro comienza, que crear una base de datos, por lo que la aplicación profesional ahora tiene su propia base de datos.

  2. Una vez creada la base de datos, compruebe si existe la base de datos de aplicaciones lite, supongo que ya está haciendo esto porque está abriendo el db de la aplicación lite en su aplicación profesional.

  3. Si existe la aplicación lite db, escriba los datos de la aplicación lite db en la aplicación pro db. Ahora en su pro db tendrá todos los datos lite db. Al usar la aplicación profesional, la aplicación debe hacer llamadas a su propia base de datos en el futuro, y no el lite db. Ahora que los datos de la aplicación lite se transfieren al pro, el usuario puede desinstalar la aplicación lite sin preocuparse de que se pierdan los datos.

  4. Si el lite db no existe, entonces no pasa nada y la aplicación pro carga con su propia base de datos, datos en blanco (o lo que sea necesario precargado).

¿Por qué no tienes la base de datos en tu servidor y cada vez que la aplicación instalada (independientemente de la versión lite o pro) sólo tirar de la base de datos de su servidor (y sobrescribir el existe uno si existe), esto es bueno también para la seguridad de su base de datos, Becuase puedo simplemente navegar por el archivo apk con zip softwar y obtener su base de datos. El otro beneficio es que el archivo apk será menor en su tamaño, más importante que va a resolver su problema

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.