我在 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;
}
}
任何想法都非常感谢。