Se ha producido un error en la conexión de GoogleApiClient
Estoy tratando de usar los juegos de Google Api basado en turnos para mi juego para Android. El código que utilizo para conectar mi GoogleApiClient
proviene de muestras o documentación de Api de Google.
Dentro de mi implementación de onConnectionFailed
he intentado dos enfoques separados:
- ¿Está proporcionando una implementación para todos los métodos nativos requeridos?
- Android: el reproductor de youtube ha sido lanzado
- ¿Cómo puedo implementar autocompletar con cursoradapter?
- ¿Puedo crear aplicaciones de Windows Phone usando java?
- Cómo hacer el espacio entre barras en bargraph usando Achartengine si cada barra es diferente color contaning diferentes valores
if (signInClicked || autoStartSignInFlow) { autoStartSignInFlow = false; signInClicked = false; resolvingConnectionFailure = true; // Attempt to resolve the connection failure using BaseGameUtils. // The R.string.signin_other_error value should reference a generic // error string in your strings.xml file, such as "There was // an issue with sign-in, please try again later." if (!BaseGameUtils.resolveConnectionFailure(this, apiClient, connectionResult, RC_SIGN_IN, R.string.signin_other_error)) { resolvingConnectionFailure = false; } }
El primer enfoque anterior proviene de la muestra TBMP Skeleton. Esto da lugar a un diálogo que se crea con el mensaje
No se ha podido iniciar sesión. Compruebe la conexión de red y vuelva a intentarlo.
Y la conexión nunca se hace.
if (connectionResult.hasResolution()) { // https://developers.google.com/android/guides/api-client under 'Handle connection // failures'. I don't know if this is solving the problem but it doesn't lead to // 'please check your network connection' message. try { if(LoggerConfig.ON) { Log.e(TAG, "onConnectionFailure, attempting to startResolutionForResult."); } resolvingConnectionFailure = true; connectionResult.startResolutionForResult(this, REQUEST_RESOLVE_ERROR); } catch (IntentSender.SendIntentException e) { // There was an error with the resolution intent. Try again. if(LoggerConfig.ON) { Log.e(TAG, "onConnectionFailure, there was an error with resolution intent"); } apiClient.connect(); } }
En el segundo enfoque termina llamando a startResolutionForResult
que pasa RESULT_SIGN_IN_FAILED
a onActivityResult. De la documentación
El código de resultado devuelto a la actividad de llamada al iniciar sesión falla.
El intento de iniciar sesión en el servicio de juegos falló. Por ejemplo, esto puede ocurrir si la red es escamosa, o si la cuenta del usuario se ha inhabilitado, o no se pudo obtener el consentimiento.
Esto me desconcierta ya que no tengo problemas para obtener el signo de flujo para trabajar en una muestra. Sin embargo, en mi juego nunca se me pide que seleccione una cuenta de Google antes de que se produzca un error en el inicio de sesión.
Para el registro he probado todos los pasos aquí https://developers.google.com/games/services/android/troubleshooting y todavía falla.
¿Cómo puedo resolver este error para iniciar sesión?
- Los gestos no funcionan cuando se utiliza DrawerLayout en la aplicación para Android
- Cómo cambiar / cambiar el tamaño de EditText en el diseño de la tabla?
- Obtener la altura de la pantalla en Android
- Uso de MessagePack con Android
- Convertir enum enumerado a Ennotación enumerada en android
- Android BigInteger ArithmeticException
- Crear TextView (en el código) con estilo pero sin atributos
- SoundPool "AudioFlinger no pudo crear pista, estado: -12"
private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create the Google Api Client with access to the Play Games services mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Games.API).addScope(Games.SCOPE_GAMES) // add other APIs and scopes here as needed .build(); // ... } @Override protected void onStart() { super.onStart(); mGoogleApiClient.connect(); } @Override protected void onStop() { super.onStop(); mGoogleApiClient.disconnect(); }
Para más información, consulte el enlace
Prueba private GoogleApiClient mGoogleApiClient;
mGoogleApiClient = new GoogleApiClient.Builder(getActivity()) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build();
Llame a mGoogleApiClient.connect();
En el método onStart()
.
@Override public void onStart() { super.onStart(); mGoogleApiClient.connect(); }