Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


En el Kindle Fire, ¿es posible obtener la dirección de correo electrónico de un usuario?

Esta pregunta lo discute para dispositivos android en general, pero si intenta ejecutar este código en un Kindle Fire, todo lo que obtiene es el nombre del usuario. ¿Hay alguna forma de obtener la dirección de correo electrónico? Teníamos la esperanza de pop-up un diálogo con la dirección de correo electrónico ya pre-llenado por lo que no tendría que escribir si era correcto, pero parece que la única solución es tener que volver a escribirlo.

Edit: Este es el código que otros hilos han sugerido (que no funciona en el Kindle Fire):

Account[] accounts = AccountManager.get(this).getAccounts(); for (Account account : accounts) { // TODO: Check possibleEmail against an email regex or treat // account.name as an email address only for certain account.type values. String possibleEmail = account.name; // possibleEmail is a list of account names, hopefully including the @gmail.com address. } 

    2 Solutions collect form web for “En el Kindle Fire, ¿es posible obtener la dirección de correo electrónico de un usuario?”

    En el Kindle Fire, ¿es posible obtener la dirección de correo electrónico de un usuario?

    Lo siento, pero estás totalmente equivocado.

    Solía ​​vincular a Google Dialogo de inicio de sesión que muestran todos los usuarios existieron en Kindle Fire.

    Siga este código:

     public class AuthAcount { private Context context; private AccountManager mAccountManager; public AuthAcount(Context context) { setContext(context); } public Account[] getAccount() { mAccountManager = AccountManager.get(context); Account[] accounts = mAccountManager .getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); return accounts; } public Context getContext() { return context; } public void setContext(Context context) { this.context = context; } } 

    P / s: Para usar GoogleAuthUtil clase, puede ser que necesite google-oauth-client-1.15.0-rc.jar (Por favor, utilice la última versión).

    En los dispositivos de Fuego que tengo disponible, esto es lo que hice:

     final static String TYPE_GOOGLE = "com.google"; final static String TYPE_AMAZON = "com.amazon"; final static String AMAZON_EMAIL = "com.amazon.pim"; public static String getAccountName(final Context context) { boolean amazon = TextUtils.equals(Build.MANUFACTURER, "Amazon"); String type = amazon ? TYPE_AMAZON : TYPE_GOOGLE; String email = null; try { Account acc[] = AccountManager.get(context).getAccountsByType(type); if (acc.length > 0) { email = acc[0].name; for (int i = 0; i < acc.length; i++) { Account account = acc[i]; if (amazon) { // there are a lot of flags, just skip them if (!TextUtils.equals(account.type, TYPE_AMAZON)) { // is it an email account? if (account.type.startsWith(AMAZON_EMAIL)) { email = account.name; } } } } } else { acc = AccountManager.get(context).getAccounts(); if (acc.length > 0) { // just return the first one... email = acc[0].name; } } } catch (Exception ex) { ex.printStackTrace(); } return email; } 

    Esto también funcionará con dispositivos de Google Play.

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.