2012-01-18 12 views
16

Actualmente tengo dos versiones de mi aplicación en el mercado de Android, una de pago y otra gratuita. Pero quiero integrar la facturación en la aplicación en mi aplicación gratuita y cobrar a los clientes en una base de suscripción, a un precio inferior al precio actual de la aplicación paga.¿Cómo migrar de una aplicación paga de Android a una aplicación pagada con facturación en la aplicación?

Pero, ¿cómo debería manejar esto para los clientes existentes? Parece injusto dejarles pagar nuevamente por el uso de la funcionalidad paga, mientras que ellos fueron los primeros en adoptar mi aplicación. Idealmente, implementaré algo que otorgará a los usuarios existentes acceso a la funcionalidad desbloqueada en mi aplicación gratuita.

¿Alguna idea de cómo lograr esto? Un esquema de un buen enfoque es suficiente, no me importa investigar sobre cómo implementar este enfoque.

+2

¿Alguna vez encontró una solución para esto? Estoy buscando hacer lo mismo y tengo que encontrar la forma de brindarles a los usuarios pagados existentes la funcionalidad que planeo desbloquear mediante compras en la aplicación. Estaba considerando hacer algo como esto (http://stackoverflow.com/questions/2133986/how-to-know-my-android-application-has-been-upgraded-in-order-to-reset-an-alarm) para detectar una actualización en lugar de una instalación limpia, pero le preocupa que no sea tan seguro como otorgar a los usuarios existentes las compras integradas apropiadas de forma gratuita (si es posible). –

+0

No he encontrado una solución todavía. Estaba pensando en una solución que verifica si la aplicación paga está instalada en el dispositivo y, de ser así, agregue una entrada a las preferencias compartidas de la aplicación gratuita actualizada con suscripciones en la aplicación que indica que el usuario debe tener la funcionalidad desbloqueada de mi aplicación Pero no he dedicado tiempo a investigar los pros y los contras de una solución así. –

+0

@ Jan-Henk ¿Encontró solución todavía? ¿Cómo lo hiciste? Estoy dispuesto a implementar esto también. Para compartir mi experiencia Compré la versión paga de SwiftKey. Luego Swiftkey se convirtió en el concepto de compra de la aplicación. No sé cómo lo hicieron, pero de alguna manera "saben" que me pagaron y me permitieron tener 1 tema gratis. – rxlky

Respuesta

-1

Android sitio web dev cubre esta bastante bien.

http://developer.android.com/guide/market/billing/index.html

+7

Su enlace cubre cómo implementar la facturación integrada en la aplicación, pero el enfoque principal de mi pregunta es cómo migrar a los usuarios de mi aplicación pagada existente a la aplicación gratuita donde se implementará la facturación en la aplicación. Estoy buscando una solución donde estos usuarios no tengan que pagar de nuevo. –

+0

El sitio de desarrollo de Android no cubre este caso de uso en absoluto. – donturner

0

corrígeme si he entendido incorrectamente. ¿Has mencionado sobre la suscripción, lo que significa información de usuario + base de datos + información adicional?

si su aplicación no tiene la base de datos o cualquier cosa para mantener registros de usuario. Sugeriría lanzar una actualización a la aplicación paga y habilitar la preferencia compartida o el archivo ini común. utiliza la aplicación gratuita para leer el mismo archivo de preferencia compartida o tu propio archivo ini para leer la configuración.

va para base de datos que le ayudará en el futuro para más actividades de relaciones con los clientes.

1
  • Incremento su versión de base de datos (por ejemplo, 34 -> 35.)
  • En el método SqliteOpenHelper desbloquear sus características para los usuarios anteriores

Ejemplo:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ 
    if(oldVersion != 0 and oldVersion <= 34){ 
     appConf.unlockAllFeatures() 
    } 
} 
  • Si su aplicación aún no usa la base de datos, hágalo en onCreate, pero observe que se llama a onCreate en una primera llamada a la base de datos
2

Se podría retener ambos sus y sus versiones libres/IAB pagados, pero basar los dos en el mismo proyecto de biblioteca de modo que tendría sólo un conjunto de archivos de origen de mantener. El proyecto de la biblioteca podría desbloquear todas las características actualmente disponibles para los usuarios pagos de la versión paga (activada, digamos, probando el nombre del paquete de la aplicación) y desbloquear esas mismas características para la versión gratuita solo cuando el pago se haya realizado a través de IAB.

Esto también le permitiría cobrar a los usuarios de la versión de pago por características adicionales además de las que estaban presentes cuando pagaron por la aplicación, si agregara algunas características verdaderamente importantes en el futuro y deseara cobrar una cantidad para aquellos.

También tendría la ventaja de que su presente pagado los usuarios no tendrían que hacer nada en absoluto; para ellos, parece que no se produjo ningún cambio. En particular, no tendrían que instalar su aplicación gratuita/IAB, ni seguir ningún procedimiento de autorización especial.

La desventaja sería que tendría que crear y cargar dos proyectos para cada lanzamiento. Sin embargo, esto podría estar parcialmente automatizado.

+0

¡Acaba de darse cuenta de que su pregunta era para 2012! Algunas de las otras respuestas aquí son de 2013, así que me perdí eso. Con suerte, ha resuelto su problema; quizás esta respuesta ayudará a alguien más. – Carl

4

Libera una versión gratuita de tu aplicación; use la versión paga como si fuera una clave de licencia para la versión gratuita.

PackageManager manager = getPackageManager(); 
if (manager.checkSignatures("old.package.name", "new.package.name") 
    == PackageManager.SIGNATURE_MATCH) { 
    //full version 
} 
+0

Esta es la solución más fácil. ¡Genio! – hunterp

+1

Esta es una solución fácil, pero ¿no requiere que los usuarios mantengan instalada la antigua aplicación de pago, aunque ya no la usen? –

+0

Puede ejecutar el cheque una vez, si el usuario tiene instalada la aplicación de pago y luego almacenar ese resultado en un almacenamiento persistente para que las ejecuciones posteriores de la aplicación gratuita siempre ejecuten la versión completa. Una vez hecho esto, podría mostrar un diálogo al usuario indicándole que desinstale la versión paga. – donturner

Cuestiones relacionadas