如何正确实施Android Google Play手动登录选项?

时间:2014-05-28 16:08:24

标签: android google-play-services google-play-games

我想在我的Android应用程序中实现Google Play服务,但我不希望应用程序要求用户登录,当应用程序第一次启动时,我已经使用了以下内容我的主要活动中的代码:

public class MainActivity extends BaseGameActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    if (prefs.getBoolean("pref_user_game_enabled", false) == false) {
      getGameHelper().setMaxAutoSignInAttempts(0); 
    }
    ...
当用户按下单独的GameSignInActivity中的按钮时,

我实施了manual sign in

public class GameSignInActivity extends BaseGameActivity 
  implements View.OnClickListener {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    getGameHelper().setMaxAutoSignInAttempts(0); 
    findViewById(R.id.game_signin_btn_signin).setOnClickListener(this);
  }

@Override
public void onClick(View view) {
    if (view.getId() == R.id.game_signin_btn_signin) {
        getGameHelper().setMaxAutoSignInAttempts(3);
        beginUserInitiatedSignIn();
    }
    else if (view.getId() == R.id.game_signin_btn_signout) {
        signOut();

        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        final Editor edit = prefs.edit();
        edit.putBoolean("pref_user_game_enabled", false);
        edit.commit();                  
    }
}

@Override
public void onSignInSucceeded() {
    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
    final Editor edit = prefs.edit();
    edit.putBoolean("pref_user_game_enabled", true);
    edit.commit();      
}

让我们说用户运行我的应用程序,登录Google Play,关闭应用程序,然后再次运行它。我怎么知道用户之前已经签名? isSignedIn() MainActivity返回false。我该怎么做才能在那里使用Google Play Services API?

1 个答案:

答案 0 :(得分:2)

您是否在 onCreate()中调用 isSignedIn()? 您应该等待 onSignInSucceeded()登录。请参阅https://stackoverflow.com/a/18064376/2176708