Происходит очень странное явление.
Всякий раз, когда пользователь инициирует вход в систему, появляется представление «выберите учетную запись», после выбора учетной записи и нажатия кнопки «ОК» вход инициируется снова, и возвращается то же представление. Нажатие на кнопку «Отмена» возвращает игру с неудачным входом в систему, почему это происходит?
Перед инициацией входа в LogCat появляется следующее:
03-06 13:53:06.797: D/PhoneWindow(2967): couldn't save which view has focus
because the focused view org.cocos2dx.lib.Cocos2dxGLSurfaceView@40537408 has no id.
Я реализовал так:
public class myapp extends BaseGameActivity {
...
static Context mContext;
boolean mInSignInFlow = false;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mContext = myapp.this;
if(GooglePlayServicesUtil.isGooglePlayServicesAvailable (mContext) == ConnectionResult.SUCCESS){
GoogleApiClient.Builder builder =
new GoogleApiClient.Builder(this);
builder.addApi(Games.API)
.addScope(Games.SCOPE_GAMES);
mClient = builder.build();
}
}
@Override
protected void onStart() {
super.onStart();
if (!mInSignInFlow) {
// auto sign in
mClient.connect();
}
}
@Override
public void onSignInFailed() {
Log.w("Sign In", "Failed");
}
@Override
public void onSignInSucceeded() {
mInSignInFlow = true;
Log.w("Sign In", "Success");
}
public static void gameServicesSignIn() {
((myapp)mContext).runOnUiThread(new Runnable() {
public void run() {
((myapp)mContext).beginUserInitiatedSignIn();
}
});
}
Я получаю журнал «Sign in Failed» при запуске и ситуации, описанной выше, когда gameServicesSignIn() вызывается при нажатии кнопки.