Acerca de la concesión de licencias de aplicaciones

Con la concesión de licencias de aplicaciones de Android, cada dispositivo comprueba con un servidor para asegurarse de que este dispositivo tiene permiso para ejecutar la aplicación. Concesión de licencias es importante para cualquier aplicación de pago. Licencias es también una buena precaución con una aplicación gratuita (para ayudar a mantener la propiedad del concepto de la aplicación). Este artículo le guiará por los pasos para agregar un sistema de licencias simple a su aplicación para Android.

Creación de una nueva aplicación para Android

Crear un nuevo proyecto Android de la manera que hace normalmente. Al establecer un SDK mínimo, seleccione Nivel API 19 o inferior. En las nuevas aplicaciones de build.gradle archivo, cambie el targetSdkVersion a 19 o inferior. (Se necesita más trabajo que hacer de licencia cuando el destino de un nivel de API más reciente.)

La biblioteca de la concesión de licencias

He aquí una manera de agregar la biblioteca de licencia de Google para su proyecto:

  1. En el menú principal de Android Studio, seleccione Administrador de Herramientas-Android SDK.

  2. En la pestaña Herramientas del SDK del Gerente SDK, seleccione Google Play Licencias Biblioteca.

  3. Haga clic en Aceptar para descargar e instalar la Biblioteca de licencias.

  4. Cuando se haya completado la instalación, haga clic en Finalizar para cerrar el Administrador de SDK.

  5. En el menú principal de Android Studio, seleccione Estructura de archivos-Project.

  6. En la parte izquierda del cuadro de diálogo Estructura del proyecto, seleccione el elemento SDK Ubicación.

  7. En el cuerpo principal de la caja de diálogo Estructura del proyecto, tenga en cuenta la entrada en el campo de texto de Android SDK Ubicación.

    Este es el lugar en el disco duro donde se ha instalado el SDK de Android.

  8. Haga clic en Aceptar para cerrar el cuadro de diálogo Estructura del proyecto.

  9. Con el Explorador de archivos de su equipo de desarrollo o el Finder, visitar el lugar en el disco duro donde está instalado el SDK de Android.

  10. Navegue hacia abajo a la play_licensing / directorio de extras / google / biblioteca / src / com.

    En ese directorio, usted encontrará un subdirectorio llamado google.

  11. Copie el directorio de Google para su aplicacion / src / java / com / principal.

Ahora de la aplicación app / src / main / java / com directorio tiene dos subdirectorios. Por ejemplo, si una aplicación está en un paquete denominado com.allyourcode.licensingdemo, de la aplicación app / src / main / java / com directorio tiene subdirectorios llamados allyourcode y google. Esto se puede ver con el Explorador de archivos de su computadora o en el Finder, pero también se puede ver en la ventana de la herramienta Proyecto de Android Studio (como se muestra aquí).

Algunos nuevos subdirectorios.
Algunos nuevos subdirectorios.

Conseguir una licencia para su aplicación

Se necesita una clave de licencia para publicar esta aplicación. Para obtener su clave, haga lo siguiente:

  1. Visita Google Play del desarrollador de tiendas consola.

  2. En la consola de desarrollador, haga clic en el botón Nueva Aplicación en Agregar.

    Aparece una página Añadir Nueva Aplicación.

  3. En la página Agregar nueva aplicación, escriba un título para la nueva aplicación.

  4. Aún en la página Añadir nueva aplicación, haga clic en la tienda Listado botón Preparar.

    Estás a una página de la tienda de venta.

  5. En el lado izquierdo de la página de la tienda de venta, seleccione Servicios y APIs.

    Cambios en el contenido del página de la tienda de venta.

  6. En la página Almacén de venta, buscar un monstruosamente larga secuencia de caracteres como la que se muestra aquí.

    Un monstruosamente larga secuencia de números.
    Un monstruosamente larga secuencia de números.
  7. Copie esa secuencia de caracteres, y pegarlo en un archivo de texto sin formato en el disco duro de su equipo de desarrollo.

La modificación de su aplicación para la concesión de licencias

A continuación, hay que añadir código a su aplicación para que la aplicación comprueba el servidor de licencias antes de permitir que el cliente pueda usarlo. He aquí una muestra escueto. (Para una muestra más rica, ver el código en la década de SDK extras / google / play_licensing / muestra carpeta).

importación android.app.Activity-importación android.content.Intent-importación android.os.Bundle-importación android.provider.Settings-importación com.google.android.vending com.google.android.vending.licensing.AESObfuscator-importación. licensing.LicenseChecker-importación com.google.android.vending.licensing.LicenseCheckerCallback-importación clase com.google.android.vending.licensing.ServerManagedPolicy pública MainActivity extiende Actividad {private static BASE64_PUBLIC_KEY última String = "la clave pública VA AQUÍ" - byte static final privado [] SALT = new byte [] {// Veinte números (que van desde // -128 a 127) ir aquí} -cuarto LicenseCheckerCallback mLicenseCheckerCallback-privada boolean LicenseChecker mChecker-privada keepGoing = cierto- @ vacío Overridepublic onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView (R.layout.activity_main) -string deviceId = Settings.Secure.getString (getContentResolver (), Settings.Secure.ANDROID_ID) -mLicenseCheckerCallback = new MyLicenseCheckerCallback () - mChecker = nueva LicenseChecker (este, nuevo ServerManagedPolicy (esto, AESObfuscator nueva (SALT, getPackageName (), deviceId)), BASE64_PUBLIC_KEY) -doCheck () -} @ Overridepublic vacío onResume () {super.onResume () - si (keepGoing!) { Acabado () -}} private void doCheck () {mChecker.checkAccess (mLicenseCheckerCallback) -} MyLicenseCheckerCallback clase privada implementa LicenseCheckerCallback {public void permitir (int policyReason) {if (isFinishing ()) {// No actualizar la interfaz de usuario si Actividad se finishing.return -}} public void dontAllow (int policyReason) {if (isFinishing ()) {} retornables keepGoing = intención falsos Intención = new Intent (MainActivity.this, NotLicensedActivity.class) (mensaje -intent.putExtra " "., getResources () getString (R.string.app_not_licensed) +" (0x "+ Integer.toHexString (policyReason) +") ") - startActivity (intención) -} public void Applicationerror (int errorCode) {if (isFinishing ( )) {} Regresar- keepGoing = intención falsos Intención = new Intent(MainActivity.this,NotLicensedActivity.class)-intent.putExtra("message",getResources().getString(R.string.application_error) + "(0x" + Integer.toHexString (errorCode) + ")") - startActivity (intención) -}} @ Overrideprotected OnDestroy void () {super.onDestroy () - mChecker.onDestroy () - // No olvides esta línea. Sin ella, su aplicación puede bloquearse.}}

Para que esto funcione código de ejemplo, hay que añadir algunos ingredientes adicionales:

  • En la actividad principal, sustituir las palabras Su clave pública VA AQUÍ con su propia clave de licencia de los Pasos 6 y 7 en la sección "Cómo obtener una clave de licencia para su aplicación" de este artículo.

  • Haga su propio 20-número valor SAL - un término de lujo para un conjunto de valores producidos al azar - y agregarlo al código de la actividad principal.

  • Crear app_not_licensed y error de aplicación recursos de cadena.

  • Añadir al archivo AndroidManifest.xml del proyecto.

  • Añadir cualquiera de código de su propia aplicación para el código de ejemplo. (En otras palabras, hacer que su aplicación hace lo que se supone que debe hacer - jugar a un juego, mostrar la información, resolver un problema, o lo que sea.)

  • Crear un NotLicensedActivity clase.

    Un ejemplo NotLicensedActivity se copia aquí.

    public class NotLicensedActivity extiende Actividad {void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -setContentView público (R.layout.not_licensed) -string mensaje = getIntent () getExtras () getString ("mensaje") -.. (( TextView) findViewById (R.id.message_text)) setText (mensaje) -. ((TextView) findViewById (R.id.message_text2)) setText (mensaje) -.} void quitApp (Ver la vista del público) {acabado () -} }
  • Añadir vistas de texto denominados MESSAGE_TEXT y message_text2 al archivo de diseño de su NotLicensedActivity.

En la actividad principal, la esencia de la verificación de la licencia viene en dos partes (a) la llamada a doCheck (), que se comunica con el servidor de Google Play, y (b) la MyLicenseCheckerCallback clase interna (la clase que responde a los resultados del servidor Play). los LicenseCheckerCallback tiene que tener al menos tres métodos - una permitir que () método para "Siga adelante y utilizar la aplicación", un dontAllow () método para "usted no está autorizado a utilizar esta aplicación", y un error de aplicación() método para "¡Oh, oh!"

En el código de ejemplo nada especial se realiza en el permitir que () método. en el dontAllow () y error de aplicación() métodos otra actividad se inicia que se nombra NotLicensedActivity. Usted puede hacer esto NotLicensedActivity hacer lo que quieras. Pase lo que pase en el NotLicensedActivity, la continua campo se establece en falso, decir la principal actividad para llamar acabado () (en el En resumen método) al volver de la NotLicensedActivity.

Usted puede utilizar este truco o hacer algo diferente. En Android, las actividades no son modal. Es decir, si una actividad cubre parcialmente otra actividad, entonces el usuario puede interactuar con cualquier actividad al tocar la parte apropiada de la pantalla. Así que si NotLicensedActivity no cubre por completo la actividad principal, el usuario puede eludir la NotLicensedActivity tocando otra parte de la pantalla. Para evitar que esto suceda, que el NotLicensedActivity cubrir toda la pantalla, resistiendo la tentación de hacer el NotLicensedActivity ver como un pequeño cuadro de diálogo.

Prueba de su Licencias de Aplicación

¿Funciona el otorgamiento de licencias de aplicaciones? ¿Pueden los usuarios con licencia ejecutar su aplicación? Y ¿qué pasa con los usuarios sin licencia? ¿Pueden ejecutar su aplicación, también? Usted puede descubrir después de que hayas subido tu aplicación y antes de que usted publique su aplicación. Así es cómo:

  1. Visita https://play.google.com/apps/publish/.

  2. En la parte más a la izquierda muy de la página Consola Developer, seleccione Configuración.

    Aparece la página de configuración de tu cuenta.

  3. En el lado izquierdo de la página Configuración, seleccione Detalles de cuenta.

  4. Desplácese por la página de detalles de la cuenta hasta que encuentre una sección Prueba de Licencia.

    En esa sección Prueba de Licencia, usted encontrará un campo de texto llamado cuentas de Gmail con la prueba de acceso. También encontrará una lista desplegable Licencia etiquetada Prueba de Respuesta.

    Sus opciones de respuesta de prueba de licencia
    Sus opciones de respuesta de prueba de licencia
  5. En las cuentas de Gmail con las pruebas de campo de acceso, escriba la dirección de correo electrónico para una o más cuentas de Gmail.

    Si escribe más de una dirección de correo electrónico, utilice una coma para separar una dirección de otro. Las personas cuyos dispositivos Android están registrados para estas direcciones de correo electrónico serán capaces de encontrar su aplicación en la tienda Play Google. (Los demás no verán su aplicación.)

  6. En la lista de respuesta de prueba con licencia, seleccione NOT_LICENSED.

    Los usuarios que instalan su aplicación (usuarios con el Gmail direcciones que aparecen en el paso 5) recibirán esta respuesta NOT_LICENSED cuando tratan de ejecutar la aplicación.

  7. Diga a los usuarios en su lista de cuentas de Gmail para tratar de descargar e instalar la aplicación.

    Si el código de su aplicación es correcta (por ejemplo, si el onCreate método de la actividad principal de este artículo está haciendo su trabajo), el usuario de que no será capaz de continuar con el funcionamiento de su aplicación. Eso es exactamente lo que quieres

  8. Cuando esté satisfecho con los resultados de las pruebas en los pasos 6 y 7, revisar la consola de desarrollador y cambiar la respuesta de prueba Licencia para LICENCIA.

  9. Informe a los usuarios sobre sus cuentas de Gmail lista para probar el funcionamiento de su aplicación de nuevo.

    Si el código de su aplicación es correcta (por ejemplo, si el onCreate método de la actividad principal de este artículo está haciendo su trabajo), el usuario será capaz de continuar con el funcionamiento de su aplicación.

  10. Intente otras opciones de la lista de respuesta de prueba con licencia - opciones como LICENSED_OLD_KEY, ERROR_SERVER_FAILURE, y así sucesivamente.

    Recuerde, no hay tal cosa como demasiado pruebas.




» » » » Acerca de la concesión de licencias de aplicaciones