GAEアプリケーションでGoogleアカウントの認証を有効にするには、Authenticating against App Engine from an Android appで説明したコードを使用しています。問題は、アンドロイドアプリがアカウントにアクセスできるようになると、同じアカウントを使用してプロセスをもう一度繰り返すことができなくなることです。私が試した:アンドロイドアプリのGoogleアカウントアクセス確認を元に戻す
- invalidateAuthToken()
- クリアデータ
- は、そのアプリをアンインストール(設定=>アプリケーションを=>アプリケーションの管理)を
しかし、アプリはまだそのへのアクセスを得ていますアカウント。以下は、私が使用するコードスニペットです。ユーザーの確認のための意図を示しています。
private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent)bundle.get(AccountManager.KEY_INTENT);
if(intent != null) {
// User input required
startActivity(intent);
} else {
onGetAuthToken(bundle);
}
} catch (OperationCanceledException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AuthenticatorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
誰にも直面していますか?どのように次の実行に確認を強制する任意のアイデア?
私はこれらの質問にリンクしています* [[アクセス要求]ユーザーはすでにアクセスを許可していますか?](http://stackoverflow.com/questions/6852256/how-do-you-force-accountmanager-to-show-the-access-request-screen-after-a-user)* [アカウントマネージャのクレデンシャルアクセスからの不正アクセスとアプリケーション](http://stackoverflow.com/questions/8206036/unauthorize-and-app-from-accountmanager-credential-access)を参照してください。ありがとう – blue
ルートデバイスを持っている(またはエミュレータで動作している)場合、グラントテーブルをクリアすると機能します。あなたはもう少し微妙になり、自分のアプリのエントリだけを削除することもできます。 –