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.
android
google-account
KawBoy
quelle
quelle
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:
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).
quelle
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" />
quelle
quelle
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 }
quelle
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.
quelle
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
quelle
String name = android.os.Build.USER; if (!TextUtils.isEmpty(name)) { nameEdit.setText(name); }
quelle