모두들.발리와의 비동기 계정 인증
저는 AbstractAccountAuthenticator를 사용하여 계정 인증자를 구현 중이며 getAuthToken 함수에서 비동기 메소드를 호출하여 사용자를 인증해야합니다. 'getAuthToken'방법에 대한 구글의 문서에 따르면
public class AccountAuthenticator extends AbstractAccountAuthenticator {
...
@Override
public Bundle getAuthToken(final AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options)
throws NetworkErrorException
{
final AccountManager accountManager = AccountManager.get(context);
String authToken = accountManager.peekAuthToken(account, authTokenType);
// !!!!
if(TextUtils.isEmpty(authToken)) {
<<call asynchronous method to acquire token>>
return null;
}
// !!!!
final Bundle result = new Bundle();
result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
result.putString(AccountManager.KEY_AUTHTOKEN, authToken);
return result;
}
...
}
: 내 코드는 다음과 같다 결과가 응답를 통해 반환되는 경우가 null 번들 결과 또는 를 반환합니다. 결과가 포함됩니다 중 하나 AccountManager.KEY_INTENT
• , 또는 AccountManager.KEY_ACCOUNT_NAME
•
, AccountManager.KEY_ACCOUNT_TYPE
및 AccountManager.KEY_AUTHTOKEN
, 또는 AccountManager.KEY_ERROR_CODE
•
및 AccountManager.KEY_ERROR_MESSAGE
을 오류
을 나타 내기 위해 내가 null을 반환하는 데 필요한 인증 방법 때문에 비동기식이지만 설명서에 따라 '응답'매개 변수를 통해 번들을 반환하는 방법은 무엇입니까?
고맙습니다. 내 영어를 유감스럽게 생각합니다.
감사하지만 반환 null 및 OnResponse 다른 스레드를 통해 실행 !! – SanatiSharif
@SanatiSharif 문제가 없습니다! '응답'이라는 주장은 당신에게서 온 녀석이 당신의 respost를 돌려 줄 것이라는 것입니다. 그것은 당신의 방법이 즉시 반환 할 수 없을 때 이것을 위해 실제로 사용됩니다. 예를 들어, 다음 줄을보십시오 :'response.onResult (result)'; 과'response.onError (결과);' – Luciano