2

AndroidアプリからのAppEngineに対する認証で説明されているコードを使用して、GAEアプリケーションでGoogleアカウントの認証を有効にしています。問題は、Androidアプリにアカウントへのアクセスを許可すると、同じアカウントを使用して(テストのために)プロセスを再度繰り返すことができなくなることです。私はもう試した:

  • 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();
        }
    }
};

誰かがこれに直面したことがありますか?次の実行で確認を強制する方法はありますか?

4

2 に答える 2

1

これらの権限は、システムデータベースに保持されます。アンインストール後にアプリを削除する必要がありますが、アプリデータをクリアしても効果はありません。動作しない場合は、バグである可能性があります。別のデバイスやエミュレーターで試してください。おそらく機能する極端な手段は、工場出荷時のリセットです:)

于 2012-05-11T02:50:55.503 に答える
0

私はよりクリーンな解決策を見つけました。そしてもう少し速いと思います。実行する必要があるのは2つのステップだけです(以下の1と2。詳細なステップが示されています)。

0)この追加の手順は必要ないと思います(なしで試したことはありません)が、とにかく追加しました。PlusClientアプリでから切断するだけです。

mPlusClient.clearDefaultAccount();
mPlusClient.disconnect();

Google Play services1)デバイスの[すべてのアプリ]画面(または[ダウンロード済み]画面)でアプリからデータを消去Settingsします。

2)ウェブ上のGoogleアカウントConnected applications and sitesのセクションの画面からアプリの権限を取り消します。Privacy

3)さて、もう一度接続します。これで動作するはずです。必要に応じて手順を繰り返します。

注:ステップ1と2は非常に重要です。手順1のみを実行すると、通常どおりアプリにログインし、トーストのメッセージも表示されます。Welcome back to <app_name>. You're signed in as <account_name>

于 2013-07-02T11:14:14.420 に答える