【问题标题】:How to log out from google account in android ?如何从android中的google帐户注销?
【发布时间】:2014-02-26 11:46:14
【问题描述】:

我正在开发使用 google Auth2.0 和 android 帐户管理器登录的应用程序。我成功登录并使用不同的 api 从我的谷歌获取数据,但我不知道如何从我的应用程序中注销以及何时注销想要再次显示登录屏幕。

【问题讨论】:

    标签: java android google-api google-oauth google-authentication


    【解决方案1】:

    登录时,您已保存数据,即共享首选项中的访问令牌。因此,当您要注销时清除共享首选项。这是退出的唯一方法。

    【讨论】:

      【解决方案2】:

      通常我将帐户名保存在 SharedPreferences 中,然后在注销时从 SharedPreferences 中删除帐户名。从 onActivityResult

      保存帐户名称
      if (resultCode == Activity.RESULT_OK && data != null && data.getExtras() != null) {
                      String accountName = data.getExtras().getString(AccountManager.KEY_ACCOUNT_NAME);
                      if (accountName != null) {
                          SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
                          SharedPreferences.Editor editor = settings.edit();
                          editor.putString(PREF_ACCOUNT_NAME, accountName);
                          editor.commit();
                          //do the rest after saving the account name on SharedPreferences
                      }
                  }
      

      然后注销(我的注销发生在不同的活动上):

      private void logOut(){
          SharedPreferences sharedPreferences = getSharedPreferences("MainActivity",Context.MODE_PRIVATE);
          if (sharedPreferences.getString(PREF_ACCOUNT_NAME,null)!=null){
              SharedPreferences.Editor editor = sharedPreferences.edit();
              editor.remove(PREF_ACCOUNT_NAME);
              editor.commit();
              //here show the log-in screen again
          }
      }
      

      【讨论】:

      • 嘿什么是“PREF_ACCOUNT_NAME”参数
      • 它只是一个字符串变量,例如:final String PREF_ACCOUNT_NAME = "accountName";
      【解决方案3】:

      我认为你不能退出,你必须再次显示 AccountChooser

      试试

      Intent intent = AccountPicker.newChooseAccountIntent(null, null, new String[] {"com.google"}, false, null, null, null, null);
       startActivityForResult(intent, SOME_REQUEST_CODE);
      

      【讨论】:

      • 谢谢,但什么是“SOME_REQUEST_CODE”参数。请给我例如
      • 你可以自己编,但试试 6789
      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 1970-01-01
      • 2014-05-28
      • 2017-05-07
      • 2022-11-20
      相关资源
      最近更新 更多