Comment accédez-vous à l'identifiant de compte Google / à l'identifiant de l'utilisateur dans le code? Je construis une application qui appellera un service Web pour stocker des données et je souhaite identifier l'identité de la personne qui soumet les données.
Réponses
Trop de publicités?J'ai couru dans la même question, et ces deux liens résolu pour moi:
Le premier est celui-ci: Comment puis-je récupérer le connecté au compte Google sur android téléphones portables?
Qui présente le code pour récupérer les comptes associés avec le 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 des 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>
En outre, si vous utilisez l'Émulateur le lien suivant vous aidera à configurer un compte : Émulateur Android - de la Difficulté à créer des comptes d'utilisateur
Fondamentalement, il est dit que vous devez créer un appareil android basé sur une API de Niveau et pas la Version du SDK (comme l'est généralement le cas).
La classe de gestionnaire de compte a accès à cela.
http://developer.android.com/reference/android/accounts/AccountManager.html
Cette méthode pour obtenir le nom d'utilisateur Google:
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;
}
simple cette méthode appel ....
Et obtenir un utilisateur Google dans l'identifiant 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 avoir ajouté la permission 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" />
Vérifiez l'exemple d'adaptateur de synchronisation http://developer.android.com/resources/samples/SampleSyncAdapter/index.html.
Vous indique d'utiliser AccountManager
Il existe un exemple fourni par 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 en extraire les détails associés afin d'identifier l'utilisateur.
Vous pouvez également obtenir l’identifiant email du jeton d’accès, pour cela vous devez modifier le SCOPE.
S'il vous plaît passer par mon post