http://www.androidbootstrap.com/を使用して、新しい Android アプリケーションをブートストラップしようとしていました。Otto、Dagger、Butterknife、Retrofit、およびその他の気の利いたものでプロジェクトを作成し、使用方法のサンプル コードも作成します。注釈処理と Android Studio の Gradle ビルド ファイルのすべてを簡単にインポートできるようにセットアップするので、非常に便利です。
しかし、ログイン画面で途方に暮れています。
/**
* This method gets called when the
* methods gets invoked.
* This happens on a different process, so debugging it can be a beast.
*
* @param response
* @param account
* @param authTokenType
* @param options
* @return
* @throws NetworkErrorException
*/
@Override
public Bundle getAuthToken(final AccountAuthenticatorResponse response,
final Account account, final String authTokenType,
final Bundle options) throws NetworkErrorException {
Ln.d("Attempting to get authToken");
final String authToken = AccountManager.get(context).peekAuthToken(account, authTokenType);
final Bundle bundle = new Bundle();
bundle.putString(KEY_ACCOUNT_NAME, account.name);
bundle.putString(KEY_ACCOUNT_TYPE, Constants.Auth.BOOTSTRAP_ACCOUNT_TYPE);
bundle.putString(KEY_AUTHTOKEN, authToken);
return bundle;
}
@Override
public String getAuthTokenLabel(final String authTokenType) {
return authTokenType.equals(Constants.Auth.AUTHTOKEN_TYPE) ? authTokenType : null;
}
@Override
public Bundle hasFeatures(final AccountAuthenticatorResponse response, final Account account,
final String[] features) throws NetworkErrorException {
final Bundle result = new Bundle();
result.putBoolean(KEY_BOOLEAN_RESULT, false);
return result;
}
@Override
public Bundle updateCredentials(final AccountAuthenticatorResponse response,
final Account account, final String authTokenType,
final Bundle options) {
return null;
}
}
認証できず、実際に「ログイン」します。
だから私の質問は次のとおりです。
- このオーセンティケータは何に対して認証していますか? Android デバイスのアカウント、または Parse.com、またはまったく別のものですか?
- このオーセンティケーターはどのように機能しますか? これがどのように行われるべきかを説明するガイドはどこかにありますか ( AndroidBootstrapのWeb サイトには存在せず、ビデオ ガイドは古くなっていることに注意してください)。私には、これはランダムなサービス (のような
AccountAuthenticatorService
) による巨大な混乱のように見えますが、AbstractAccountAuthenticator
... 何かには良いと確信していますが、不必要に複雑に見え、何が起こっているのか理解できません。