Comment accéder à l'identifiant/nom d'utilisateur du compte Google de l'utilisateur dans le code? Je construis une application qui appellera un service Web pour stocker des données et je veux identifier l'identité de la personne soumettant les données.Accès à l'identifiant/nom d'utilisateur du compte Google via Android
Répondre
Je suis tombé sur la même question et ces deux liens résolus pour moi:
Le premier est celui-ci: How do I retrieve the logged in Google account on android phones?
qui présente le code pour récupérer les comptes associés au téléphone. Fondamentalement, vous aurez besoin de quelque chose comme ceci:
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
Et pour ajouter les autorisations dans le AndroidManifest.xml
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>
De plus, si vous utilisez l'émulateur le lien suivant vous aidera à le configurer avec un compte: Android Emulator - Trouble creating user accounts
Fondamentalement, il est dit que vous devez créer un appareil Android basé sur un niveau API et non sur la version du SDK (comme c'est généralement fait).
Utilisez ceci: - http://stackoverflow.com/a/31538053/4395114 –
comment puis-je obtenir le compte avatar?Merci beaucoup » – Urchin
@Urchin c'est un peu hors de la portée de cette question, mais je crois que cet autre pourrait vous aider. http://stackoverflow.com/questions/17905066/get-user-name-avatar-from-google-account –
Il existe un exemple de google, qui répertorie les comptes google existants et génère un jeton d'accès lors de la sélection, vous pouvez envoyer ce jeton d'accès au serveur pour récupérer les détails connexes afin d'identifier l'utilisateur.
Vous pouvez également obtenir l'identifiant de messagerie de jeton d'accès, pour que vous devez modifier la portée
S'il vous plaît passer par My Post
cette méthode pour obtenir Google Nom d'utilisateur:
public String getUsername() {
AccountManager manager = AccountManager.get(this);
Account[] accounts = manager.getAccountsByType("com.google");
List<String> possibleEmails = new LinkedList<String>();
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);
}
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;
}
simples cette méthode appel ....
et obtenir l'utilisateur Google dans l'ID Gmail ::
accounts = AccountManager.get(this).getAccounts();
Log.e("", "Size: " + accounts.length);
for (Account account : accounts) {
String possibleEmail = account.name;
String type = account.type;
if (type.equals("com.google")) {
strGmail = possibleEmail;
Log.e("", "Emails: " + strGmail);
break;
}
}
Après l'ajout d'une autorisation dans le manifeste;
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Pourquoi interenet et accéder aux autorisations d'état du réseau sont nécessaires? – Chitrang
String name = android.os.Build.USER;
if (!TextUtils.isEmpty(name)) {
nameEdit.setText(name);
}
Eh bien, j'ai essayé cela et il m'a retourné "dpi". Clairement pas le nom de l'utilisateur. –
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String userid=currentPerson.getId(); //BY THIS CODE YOU CAN GET CURRENT LOGIN USER ID
}
récupérer des informations de profil d'un utilisateur connecté Utilisation de la méthode GoogleSignInResult.getSignInAccount pour demander des informations de profil pour l'utilisateur actuellement connecté. Vous pouvez appeler la méthode getSignInAccount après la réussite de l'intention de connexion.
GoogleSignInResult result =
Auth.GoogleSignInApi.getSignInResultFromIntent(data);
GoogleSignInAccount acct = result.getSignInAccount();
String personName = acct.getDisplayName();
String personGivenName = acct.getGivenName();
String personFamilyName = acct.getFamilyName();
String personEmail = acct.getEmail();
String personId = acct.getId();
Uri personPhoto = acct.getPhotoUrl();
Get Google compte Nom d'utilisateur et email http://stackoverflow.com/a/31538053/4395114 –
Il y a aussi une bibliothèque pour la gestion des comptes dans Android [ici] (http: // stackoverflow.com/questions/24227274/how-to-add-programmatically-a-custom-account-in-android/39686087#39686087). –