更新应用程序时,如何让所有现有用户退出 Google?

Posted

技术标签:

【中文标题】更新应用程序时,如何让所有现有用户退出 Google?【英文标题】:How can I have all existing users sign out from Google when updating the app? 【发布时间】:2019-12-11 08:26:33 【问题描述】:

我正在尝试将 Google Play 游戏服务集成到我的应用中。 (我真的遇到了麻烦,所以也请看看this question ..)而且我实际上一直在使用使用 Web 客户端 ID 的 Google 登录,并尝试将其切换到使用 android 客户端 ID 的 Google Play 游戏.

我想知道的是,当用户更新应用程序时,让每个用户都退出。否则,如果用户已使用 Web 客户端 ID 登录并尝试使用 Google Play 游戏功能,则应用会崩溃。

我该如何处理这个问题?

【问题讨论】:

【参考方案1】:

编辑 :您需要创建一个初始检查构建版本的 Splash Activity

创建一个 Splash Activity 并将此方法添加到其中。

        public class SplashScreen extends AppCompatActivity 
            @Override
            protected void onCreate(@Nullable Bundle savedInstanceState) 
                super.onCreate(savedInstanceState);
                setContentView(R.layout.splash_activity);

                new Handler().postDelayed(new Runnable() 
                    @Override
                    public void run() 
                      forcedLogout();
                    
                ,5*1000);
            
        

            private void forcedLogout()

                if (myPrefs.getLong(PREF_APP_CURRENT_VERSION,0) != BuildConfig.VERSION_CODE)
                    //call logout method
                 else
                        startActivity(new Intent(SplashScreen.this,MainActivity.class));

                        finish();
    

然后在您的登录活动中添加共享首选项。

SharedPreferences.Editor prefEditor = myPrefs.edit();
prefEditor.putLong(PREF_APP_CURRENT_VERSION,BuildConfig.VERSION_CODE);
prefEditor.commit();

【讨论】:

等等,其实我有点困惑。你能解释一下你的方法吗?因为当用户更新应用程序时,它应该已经更新到新版本,所以我认为用户不会注销。 我的意思是在SharedPreferences中保存当前版本后,总是等于,不能调用logout方法。 我犯了一个错误,在 Splash Activity 中添加这种强制注销方法,该方法最初会检查要求,然后将 Shared Preferences 添加到您的登录活动中。

以上是关于更新应用程序时,如何让所有现有用户退出 Google?的主要内容,如果未能解决你的问题,请参考以下文章

我如何告诉我所有的自动布局约束来更新自己? (例如,当用户更新他们的系统大小/动态类型时)?

Apple AppStore 更新过程:它如何影响现有文件

当它的所有者进程退出时,你如何让一个 DLL 被删除?

如何让 kubernetes “kubectl apply”不更新现有部署

如何使用 NEST 更新 ElasticSearch 索引中的现有文档?

唯一标识符更改时如何更新表?