2014-02-19 3 views
2

Я использую эту часть кода, но возвращает null.Как я могу получить активную учетную запись facebook с устройства?

Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+ 
accounts = AccountManager.get(Login.this).getAccountsByType("com.facebook"); 
String possibleEmail; 

for (Account account : accounts) 
{ 
    if (emailPattern.matcher(account.name).matches()) 
    { 
     possibleEmail = account.name; 
     Log.e("Email", possibleEmail); 
    } 
} 

Но он работает для («com.google»).

ответ

0

Его лучше распечатать все типы и посмотреть, что нужно использовать для доступа, так как извлечение их по имени типа должно быть точным совпадением.

Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+ 

    AccountManager acMng = AccountManager.get(this.getApplicationContext()); 
    if(acMng!=null) {   

    Account[] accounts = acMng.getAccounts(); 
    String possibleEmail; 

    if(accounts!= null) { 
    for (Account account : accounts) 
    { 
     Log.e((account.name , account.type); 
     if (emailPattern.matcher(account.name).matches()) 
     { 
      possibleEmail = account.name; 
      Log.e(("Email :", possibleEmail); 
     } 
    } 
    } 

Как и в моем тестировании типа устройства для Facebook является - com.facebook.auth.login

Так что я думаю, что она должна быть:

accounts = AccountManager.get(Login.this).getAccountsByType("com.facebook.auth.login"); 
+0

Благодаря Неху Теперь за работой. – user3326573

+0

прохладный !! то plz отметьте ответ :) – Neha

+0

@Neha Madam Пожалуйста, проверьте эту ссылку http://stackoverflow.com/questions/22481360/how-can-i-get-email-ids-of-yahoo-microsoft-account –