2016-02-05 3 views
3

Я зову ниже кода в Android приложение (для аутентификации с помощью Google App Engine, думаю, что бай-зе-по):AccountManager метания UnsupportedOperationException: getAuthTokenLabel

AccountManager accountManager = AccountManager.get(this); 
accountManager.getAuthToken(mAccount, "ah",null, false, new GetAuthTokenCallback(), null); 

В GetAuthTokenCallback() брошена эта ошибка:

android.accounts.AuthenticatorException: java.lang.UnsupportedOperationException: getAuthTokenLabel not supported 

Процесс аутентификации прекращается.

Странно, что он работает на устройстве Android 5.5.1. Ошибка UnsupportedOperationException возникает только на устройстве 6.0.1.

У меня есть запрос на разрешение времени на выполнение для GET_ACCOUNTS, который, как мне кажется, мне нужен, но подозреваю, что ошибка возникает из этого и систем разрешений Marshmellow.

@TargetApi(23) 
private boolean haveGetAccountPermission() { 
    Log.i(TAG, "haveGetAccountPermission()"); 
    int hasWriteContactsPermission = ActivityCompat.checkSelfPermission(this,Manifest.permission.GET_ACCOUNTS); 
    if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) { 
     ActivityCompat.requestPermissions(this,new String[] {Manifest.permission.GET_ACCOUNTS}, 
       REQUEST_CODE_ASK_PERMISSIONS); 
     return false; 
    } else { 
     return true; 
    } 
} 

Любые идеи очень ценятся.

ответ

0

Я не знаю, помогает ли это, но я обнаружил, что создание новой учетной записи непосредственно перед выполнением getAuthToken() вызывает это исключение.

В моем случае, я пытался переименовать учетную запись, и я обнаружил, что если я первый выполнить getAuthToken() со старой учетной записью и затем создать новую учетную запись с его содержанием, исключение больше не будет брошено.

Я подозреваю, что это может быть ошибка в Зефире.

Смежные вопросы