Wie greifen Sie im Code auf die Google-Konto-ID / den Benutzernamen des Nutzers zu? Ich erstelle eine Anwendung, die einen Webdienst zum Speichern von Daten aufruft, und möchte die Identität der Person identifizieren, die die Daten übermittelt.
Wie greifen Sie im Code auf die Google-Konto-ID / den Benutzernamen des Nutzers zu? Ich erstelle eine Anwendung, die einen Webdienst zum Speichern von Daten aufruft, und möchte die Identität der Person identifizieren, die die Daten übermittelt.
Antworten:
Ich bin auf dasselbe Problem gestoßen und diese beiden Links wurden für mich gelöst:
Der erste ist der folgende: Wie rufe ich das angemeldete Google-Konto auf Android-Handys ab?
Hier wird der Code zum Abrufen der mit dem Telefon verknüpften Konten angezeigt. Grundsätzlich benötigen Sie so etwas:
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
Und um die Berechtigungen in der AndroidManifest.xml hinzuzufügen
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"></uses-permission>
Wenn Sie den Emulator verwenden, können Sie ihn über den folgenden Link mit einem Konto einrichten: Android Emulator - Probleme beim Erstellen von Benutzerkonten
Grundsätzlich heißt es, dass Sie ein Android-Gerät basierend auf einer API-Ebene und nicht der SDK-Version erstellen müssen (wie dies normalerweise der Fall ist).
Diese Methode, um den Google-Nutzernamen zu erhalten:
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;
}
einfach diese Methode aufrufen ....
Und holen Sie sich den Google-Nutzer in die Google Mail-ID ::
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;
}
}
Nach dem Hinzufügen der Erlaubnis im Manifest;
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Profilinformationen für einen angemeldeten Benutzer abrufen Verwenden Sie die Methode GoogleSignInResult.getSignInAccount, um Profilinformationen für den aktuell angemeldeten Benutzer anzufordern. Sie können die Methode getSignInAccount aufrufen, nachdem die Anmeldeabsicht erfolgreich war.
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();
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
}
Plus
Symbol Kann nicht aufgelöst werden .
Verwendete diese Zeilen:
AccountManager manager = AccountManager.get(this);
Account[] accounts = manager.getAccountsByType("com.google");
Die Länge der Array-Konten beträgt immer 0.
Es gibt ein Beispiel von Google, das die vorhandenen Google-Konten auflistet und bei Auswahl ein Zugriffstoken generiert. Sie können dieses Zugriffstoken an den Server senden, um die zugehörigen Details abzurufen und den Benutzer zu identifizieren.
Sie können die E-Mail-ID auch vom Zugriffstoken abrufen. Dazu müssen Sie den GELTUNGSBEREICH ändern
Bitte gehen Sie durch meinen Beitrag
String name = android.os.Build.USER;
if (!TextUtils.isEmpty(name)) {
nameEdit.setText(name);
}