studio programacion para libros libro edición desarrollo desarrollar aprende aplicaciones android in-app-purchase in-app-billing google-account android-billing

para - manual de programacion android pdf



Información de cuenta asociada a la instalación de una aplicación. (2)

Mi instinto me dice que cree su propio AccountManager y SyncAdapter . Con el fin de controlar la cuenta asociada con su facturación en la aplicación. Usted podría entonces posiblemente admitir la fusión de cuentas en su servidor (si el usuario toma medidas y decide fusionar cuentas) y manejar la facturación a la misma persona o en función de sus cuentas. Además de restaurar las compras en el mismo dispositivo si quieres permitirlo. Puede hacer cumplir las políticas del dispositivo, etc. utilizando las licencias de Google Play y, por ejemplo, DeviceLimiter

Si el usuario elimina la cuenta anterior, su combo AccountManager y SyncAdapter crearía una nueva cuenta y el usuario se vería obligado a fusionar cuentas en su servidor para restaurar compras anteriores y tendría la nueva información de "Cuenta principal" almacenada allí.

Como dijo Edison en tus comentarios. Tiene que haber una forma de registrar la cuenta asociada con la primera compra e ir desde allí.

Estos son solo mis pensamientos y espero que podamos arrojar algo de luz sobre esto y descubrir una "mejor práctica" para apoyar esto.

Es un problema ampliamente buscado entre aquellos que implementan la facturación en la aplicación en Android, que trata cómo se tratan las cuentas múltiples. Si un usuario tiene varias cuentas configuradas, ¿cuál se utilizará para la facturación en la aplicación (ya que no hay opción para permitir que el usuario seleccione una cuenta)? Después de cavar mucho, el siguiente párrafo here parece explicarlo ...

Nota: Para realizar compras de prueba, la cuenta de prueba de licencia debe estar en el dispositivo Android del usuario. Si el dispositivo tiene más de una cuenta, la compra se realizará con la cuenta que descargó la aplicación. Si ninguna de las cuentas ha descargado la aplicación, la compra se realiza con la primera cuenta. Los usuarios pueden confirmar la cuenta que está realizando una compra al expandir el cuadro de diálogo de compra.

Creo una carga útil de desarrollador utilizando la cuenta que está involucrada en la facturación de la aplicación, para que pueda restaurarse correctamente en un momento posterior o en algún otro dispositivo. Pero desde Honeycomb, no existe tal cosa como la cuenta primaria. Un usuario puede eliminar cualquier cuenta, puede ser aquella con la que se compró la aplicación, en cuyo caso, la primera cuenta de la lista de cuentas se utilizará para la facturación. Ahora, si sé qué cuenta se usó y si ocurre que "no es la cuenta con la que se instaló la aplicación", al menos puedo informar al usuario de que las siguientes compras no se restaurarán más adelante.

Por lo tanto, mi pregunta es ...

¿Hay alguna forma de encontrar qué cuenta se utilizó para descargar la aplicación?

Google Play parece utilizar esta información. De todas formas podemos interactuar con Google Play hasta este nivel?

nota: PackageManager no parece lidiar con esto.


Si desea obtener el nombre del ID de correo de la cuenta que está configurado para jugar la cuenta de la tienda actualmente. Por favor utilízalo. Estoy aquí solo para el nombre del correo electrónico, pero puede obtener toda la información del tipo de cuenta, descripción del objeto de cuenta

Pattern emailPattern = Patterns.EMAIL_ADDRESS; Account[] accounts = AccountManager.get(this).getAccountsByType("com.google"); for (Account account : accounts) { if (emailPattern.matcher(account.name).matches()) { primaryEmailID = account.name; } }