Pracuję nad aplikacją na Androida i muszę odzyskać konto Google używane w telefonie. Chcę to zrobić dla C2DM, ale nie chcę prosić użytkownika o wprowadzenie jego/jej konta e-mail Google, jeśli są już zalogowani. Czy jest jakiś sposób to zrobić?Jak mogę pobrać zalogowane konto Google na telefony z Androidem?
21
A
Odpowiedz
44
Coś jak to powinno działać:
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;
}
}
i trzeba będzie następujące uprawnienia w swoim manifeście:
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
Pamiętaj, aby „Żądanie uprawnień w czasie pracy”, jeśli wspierać Androida 6 i później https://developer.android.com/training/permissions/requesting.html
Napisałem to z pamięci, więc może potrzebować trochę ulepszenia. Wygląda na to, że można się teraz zarejestrować bez adresu e-mail, więc może wykonaj pewne wyodrębnienie danych, aby upewnić się, że jest to rzeczywiście adres e-mail (upewnij się, że zawiera @gmail lub @googlemail)
0
Mam spróbować poniżej zakresu, aby uzyskać adres e-mail i nazwa
Get konta Google w telefonie
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;
}
Get kont Google nazwę użytkownika w telefonie
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;
}
}
zadeklaruj uprawnienia do pliku mainfest.
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Powiązane problemy
- 1. Jak mogę pobrać aktualnie zalogowane konto Windows ze strony ASP.NET?
- 2. Odpowiedz na telefony z Androidem przez bluetooth
- 3. Konto usługi Google konto użytkownika
- 4. Logowanie przez konto Google i wybieranie konta na konto iOS
- 5. Jak utrzymać, że aplikacje na Androida są zawsze zalogowane?
- 6. Podłącz dwa telefony z Androidem za pomocą kabla USB
- 7. Konto Google dostaje Token
- 8. Jak mogę utworzyć konto XMPP?
- 9. Jak mogę pobrać wszystkie wiadomości z Grup dyskusyjnych Google?
- 10. Jak pobrać plik z Dysku Google
- 11. Jak pobrać statystyki Google Analytics?
- 12. Fancybox: nie można przewinąć na telefony z systemem Android
- 13. Jak przetestować Google Plus API (konto testowe Google Plus)?
- 14. Jak mogę pobrać bibliotekę Gson?
- 15. Jak pobrać Google Chart API?
- 16. Czy Google TTS Engine działa na wszystkich telefonach z systemem Android i skąd mogę go pobrać?
- 17. Jak pobrać kod google z SVN na komputer Mac?
- 18. Jak mogę pobrać mapy statyczne Google za pomocą TIdHTTP?
- 19. Używanie interfejsu Google Cloud Print z Androidem
- 20. Jak mogę przechwycić strumień audio na urządzeniu z Androidem?
- 21. Jak mogę pobrać projekt z github?
- 22. Jak mogę pobrać db z Heroku?
- 23. Konto usługi Dysk Google - wyświetl pliki z innego konta
- 24. Jak mogę pobrać CData z BeautifulSoup
- 25. Jak mogę pobrać najnowszy plik na FTP z PHP?
- 26. Jak mogę pobrać dane z AsyncTasks doInBackground()?
- 27. Niepowodzenie delegowania dostępu do konta Google na konto usługi
- 28. Jak mogę pobrać plik z EC2
- 29. Znajdź trasę z Androidem Google Maps API
- 30. Token null Zaloguj się Konto Google
dzięki! dokładnie to, czego potrzebowałem. – fanar
Ktoś świadomy podobnych rozwiązań zgodnych z Androidem 1.6? –
Znaleziono odpowiedź tutaj: http://stackoverflow.com/questions/3360926/get-main-gmail-account-username-in-android-2-0 –