私は Android アプリで以下のコードを呼び出しています (Google App Engine に対して認証するため、バイザバイだと考えてください)。
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;
}
}
どんなアイデアでも大歓迎です。