Cómo manejar las actualizaciones de la aplicación de la libertad de versión de pago, mientras que la preservación de los datos

StackOverflow https://stackoverflow.com/questions/3011164

  •  26-09-2019
  •  | 
  •  

Pregunta

Este es el contexto. Quiero tener una versión gratuita y una versión de pago de la misma aplicación. Cuando la gente compra la aplicación, yo quiero que sean capaces de "actualización" sin perder sus datos, es decir, la versión de pago debe instalar a través de la versión gratuita. Quiero utilizar la misma base de código y simplemente cambiar un ajuste para construir la versión de pago. Andoid Mercado no me permite convertir una aplicación gratuita de una aplicación de pago, por lo que la opción trivial no está disponible.

Tengo curiosidad si alguien ha intentado esto con éxito. ¿Cómo identifica Android Market una aplicación - que se cree que la versión de pago es una aplicación diferente y sólo tiene que instalar en paralelo

?
¿Fue útil?

Solución 2

La respuesta es: esto no es solucionable con Android Market, porque el mercado no permite la carga de dos aplicaciones con el mismo nombre del paquete. Android no puede ser engañado para instalar la versión de pago sobre la versión libre y tratarla como una actualización.

Las buenas noticias: la adición de la base de datos de copia de seguridad / restaurar la funcionalidad (la copia de la base de datos a la tarjeta SD y volver a la carpeta de aplicaciones), sólo requiere unas pocas líneas de código. Mis usuarios tendrán que instalar ambas versiones en paralelo, copia de seguridad de la base de datos de la versión libre y restaurarlo a la versión de pago.

Otros consejos

Mi idea es la siguiente:

    android:versionCode
  • A cargo de versión debe ser de forma gratuita android:versionCode 1
  • Ambos deben tener el mismo paquete.

Cuando se instala la versión de pago, que reemplazará a la libre. En realidad lo mejora, ya que tiene un android:versionCode superior.

A medida que ambos tienen el mismo paquete, que será colocado en la misma carpeta (/data/data/your.package) por lo que la aplicación de pago será capaz de acceder a la base de datos aplicación gratuita.

En lugar de copias de seguridad de la base de datos hacia y desde la tarjeta SD (según lo sugerido por @cdonner), lo que requiere el permiso WRITE_EXTERNAL_STORAGE, la aplicación gratuita puede exponer a un ContentProvider, que la aplicación de pago se puede utilizar para la transferencia de datos.

Asegúrese de permisos de uso para asegurar su contenido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top