Usted puede elegir cuándo y con qué frecuencia desea que su aplicación compruebe su licencia y tiene un control total sobre la forma en que maneja la respuesta, verifica los datos de la respuesta firmada y hace cumplir los controles de acceso.
De http://developer.Android.com/guide/market/licensing/overview.html
Así que sí, básicamente cuando el desarrollador lo quiera. Me imagino que el momento más común para comprobar es cuando la aplicación se abre por primera vez.
Su aplicación no consulta directamente al servidor de licencias, sino que llama al cliente de Google Play a través de un IPC remoto para iniciar una solicitud de licencia. En la solicitud de licencia:
-
Su solicitud proporciona: el nombre de su paquete, un nonce que es más tarde usado para validar cualquier respuesta del servidor, y una llamada sobre que la respuesta puede ser devuelta asincrónicamente.
-
El cliente de Google Play recoge la información necesaria sobre el y el dispositivo, como la cuenta principal de Google del dispositivo nombre de usuario, IMSI, y otra información. Luego envía la licencia comprobar la solicitud al servidor en nombre de su aplicación.
-
El servidor de Google Play evalúa la solicitud utilizando toda la información disponible, tratando de establecer la identidad del usuario con un nivel de confianza suficiente. A continuación, el servidor comprueba la identidad del usuario con los registros de compra de su aplicación y devuelve una respuesta de licencia, que el cliente de Google Play devuelve a su aplicación a través de la llamada de IPC.
Así que..:
- La información sobre la aplicación, el dispositivo y el usuario va a los servidores de Google.
- Google comprueba tu nombre con la lista de personas que sabe que han pagado por la aplicación en Google Play. (También podría comparar el nombre de la aplicación con una lista de aplicaciones que sabe que has descargado de Google Play)
- Si puede ver que has descargado (y pagado) la aplicación de Google Play, te devuelve que tienes una licencia, si no, le dice a la aplicación que no la tienes.
Obviamente todo esto se hace en línea, así que si estás desconectado, no funcionará. Si yo estuviera escribiendo la aplicación tendría un contador para permitir a la persona usarla fuera de línea 3 veces o así antes de tener que ir en línea para obtener la verificación de la licencia con el fin de evitar el tipo de cosas que te suceden donde no puedes jugar fuera de línea. Por supuesto que si alguien escarba en el archivo donde está almacenado el contador podría cambiar el valor a 3 intentos cada vez que lo usa y nunca tendría que pagar, pero eso probablemente está más allá de la competencia técnica de la mayoría de los usuarios.