Как мога да получа активен 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").


person user3326573    schedule 19.02.2014    source източник


Отговори (1)


По-добре е да разпечатате всички типове и да видите какво трябва да се използва за достъп, тъй като извличането им по име на тип трябва да бъде точно съвпадение.

    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");
person Neha    schedule 19.02.2014
comment
@Neha Madam Моля, проверете тази връзка stackoverflow.com/questions/22481360/ - person ; 18.03.2014