Google 的 Android 代码加上在一个 Activity 中登录并从另一个 Activity 中注销

标签 android google-plus logout google-signin

我需要一步一步的过程,包括一些用于 Google 的示例 android 代码以及在一个 Activity 中的登录和从 android eclipse 中的另一个 Activity 中注销。

最佳答案

经过一个多星期的努力才找到答案。 我这样做了, 登录后,将 sharedpreferences 中的 boolean isSignedIn 保存为 true。

private SharedPreferences.Editor editor;
private SharedPreferences prefs;

editor = getSharedPreferences(getString(R.string.userDetails), MODE_PRIVATE).edit();
editor.putBoolean(getString(R.string.isSignedIn), true);
editor.apply();`

现在,当用户点击注销时,从任何 Activity 中,将 bool 值更改为 false。

现在在构建 googleApiClient 的登录 Activity 中。在它的 onStart 方法中。 检查 isSignedIn 是否为假。

@Override
public void onStart() {
super.onStart();
if (!prefs.getBoolean(getString(R.string.isSignedIn), false)) {
    signOut();
    }     
}

onConnected 中做同样的事情

@Override
public void onConnected(Bundle connectionHint) {
    if (mGoogleApiClient.isConnected()) {
        Log.i(TAG, "onConnected: " + "yes it is connected");
        if (!prefs.getBoolean(getString(R.string.isSignedIn), false)) {
            signOut();
        }
    }
}

这将注销并撤销访问权限。

public void signOut() {
    if (mGoogleApiClient != null) {
        Log.e(TAG, "signOut: " + mGoogleApiClient + mGoogleApiClient.isConnected());
        Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        if (mGoogleApiClient.isConnected()) {
                    new ResultCallback<Status>() {
                        @Override
                        public void onResult(Status status) {
                            // ...
                            Log.i(TAG, "onResult: " + mGoogleApiClient);
                        }
                    });
         Auth.GoogleSignInApi.revokeAccess(mGoogleApiClient).setResultCallback(
                    new ResultCallback<Status>() {
                        @Override
                        public void onResult(Status status) {
                            Log.i(TAG, "onResult: Revoke Access status:" + status.getStatus());
                        }
                    });
        }
    }
}

关于Google 的 Android 代码加上在一个 Activity 中登录并从另一个 Activity 中注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31911620/

相关文章:

java - 使用线程和异步任务无法防止 ANR 错误

android - React Native ProgressBarAndroid 生成微调器,而不是栏

authentication - 刷新或双击链接太快会导致 CakePHP 应用程序使用 Auth 组件将用户注销

c# - 不活动和事件,应用程序空闲,用户不活动自动注销

Laravel - 注销路线是否公开

Android SDKTools r21 库错误

android - 添加新列后如何使用 activeandroid 更新表

javascript - 使用 google+ api 对来自特定域的用户进行身份验证

android - 尝试通过 Google+ 登录按钮进行身份验证的 INVALID_KEY 消息

python - Google+ Domains API 403 禁止