verificar telefono recuperar que puedo puedes pudo por numero momento identidad google este esta eres desde cuenta crear como celular acceder android accountmanager

telefono - ¿Cómo recupero la cuenta de Google registrada en teléfonos Android?



verificar cuenta google sin telefono (2)

Estoy desarrollando una aplicación de Android y necesito recuperar la cuenta de Google utilizada en el teléfono. Quiero hacer esto para el C2DM, pero no quiero pedirle al usuario que ingrese su cuenta de correo electrónico de Google si ya ha iniciado sesión. ¿Hay alguna forma de hacerlo?


Algo como esto debería funcionar:

AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE); Account[] list = manager.getAccounts(); String gmail = null; for(Account account: list) { if(account.type.equalsIgnoreCase("com.google")) { gmail = account.name; break; } }

Y necesitarás el siguiente permiso en tu manifiesto:

<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>

Recuerde ''Solicitar permisos en tiempo de ejecución'' si es compatible con Android 6 y posteriores https://developer.android.com/training/permissions/requesting.html

Lo escribí de memoria así que puede necesitar un pequeño ajuste. Aparentemente es posible registrarse ahora sin una dirección de correo electrónico, así que tal vez regebre los datos para asegurarse de que en realidad es una dirección de correo electrónico (asegúrese de que contenga @gmail o @googlemail)


Intenté por debajo del alcance para obtener la dirección de correo electrónico y el nombre de usuario

Obtén una cuenta de Google en tu dispositivo móvil

public String getMailId() { String strGmail = null; try { Account[] accounts = AccountManager.get(this).getAccounts(); Log.e("PIKLOG", "Size: " + accounts.length); for (Account account : accounts) { String possibleEmail = account.name; String type = account.type; if (type.equals("com.google")) { strGmail = possibleEmail; Log.e("PIKLOG", "Emails: " + strGmail); break; } } } catch (Exception e) { e.printStackTrace(); strGmail = null; } return strGmail; }

Obtener el nombre de usuario de las cuentas de Google en su dispositivo móvil

public String getUsername() { List<String> possibleEmails = null; try { AccountManager manager = AccountManager.get(this); Account[] accounts = manager.getAccountsByType("com.google"); possibleEmails = new LinkedList<>(); 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. possibleEmails.add(account.name); } } catch (Exception e) { e.printStackTrace(); if (possibleEmails != null) { possibleEmails.clear(); } } if (possibleEmails != null) { if (!possibleEmails.isEmpty() && possibleEmails.get(0) != null) { String email = possibleEmails.get(0); String[] parts = email.split("@"); if (parts.length > 0 && parts[0] != null) { return parts[0]; } else { return null; } } else { return null; } } else { return null; } }

declara permisos a tu archivo mainfest.

<uses-permission android:name="android.permission.GET_ACCOUNTS" />