我想在我的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?
答案 0 :(得分:2)
您是否在 onCreate()中调用 isSignedIn()? 您应该等待 onSignInSucceeded()登录。请参阅https://stackoverflow.com/a/18064376/2176708