GoogleApiClient: ne pas déclencher surConnected ou onConnectionFailed

Alors, j'essaie d'obtenir mon dernier emplacement en utilisant GoogleApiClient. J'exécute une déclaration de connexion, mais onConnected ne lance pas, ni onConnectionFailed déclenche. Des idées?

Remarque: je l'exécute sur un émulateur, pas un périphérique réel. La navigation sur l'émulateur fonctionne.

package com.example.jdc.testjdc; import android.location.Location; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import com.google.android.gms.common.api.*; import com.google.android.gms.drive.*; import com.google.android.gms.location.LocationServices; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationListener; import com.google.android.gms.location.LocationRequest; import android.support.v4.app.FragmentActivity; import android.widget.TextView; public class MainActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener { private GoogleApiClient mGoogleApiClient; private Location mLastLocation; private TextView mLatitudeText; private TextView mLongitudeText; private TextView Toast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); buildGoogleApiClient(); } // public GoogleApiClient mGoogleApiClient; protected synchronized void buildGoogleApiClient() { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .build(); // mGoogleApiClient.connect(); } @Override public void onConnectionFailed(ConnectionResult connectionResult){ Log.e("Connected failed", String.valueOf(mGoogleApiClient.isConnected())); } public void onStart(){ super.onStart(); Log.e("Connected?", String.valueOf(mGoogleApiClient.isConnected())); mGoogleApiClient.connect(); Log.e("Connected?", String.valueOf(mGoogleApiClient.isConnected())); } public void onConnected(Bundle connectionHint) { mLastLocation = LocationServices.FusedLocationApi.getLastLocation( mGoogleApiClient); if (mLastLocation != null) { mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude())); mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude())); TextView t=new TextView(this); t=(TextView)findViewById(R.id.mLatitude); t.setText(String.valueOf(mLastLocation.getLatitude())); setContentView(mLatitudeText); } } @Override public void onConnectionSuspended(int i) { } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

Et voici le fichier manifeste

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.jdc.testjdc" > package="com.google.android.gms.location.sample.basiclocationsample" > <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest> 

Je suis en perte ici. Grâce au débogueur, j'ai constaté que les fonctions ci-dessus ne sont même jamais déclenchées …

  • Google Api Client quelque part NULL sur OnConnected
  • Android - Connexion Google avec écran de connexion au lieu de la connexion automatique
  • Rare NullPointerException dans GoogleApiClient utilisant Firebase
  • Getting 'E / TokenRequestor: Vous avez une configuration OAuth2 incorrecte. Erreur détaillée: INVALID_AUDIENCE 'même après avoir fourni des identifiants de clients précis
  • GoogleAppClient onConnectionSuspended, devrais-je appeler mGoogleApiClient.connect () à nouveau?
  • Le rappel de client google api n'est jamais appelé
  • AbstractGoogleClient: signal fatal 11 (SIGSEGV)
  • SecurityException: Non autorisé à démarrer le service Intention act = com.google.android.c2dm.intent.REGISTER
  • 2 Solutions collect form web for “GoogleApiClient: ne pas déclencher surConnected ou onConnectionFailed”

    Vous devez enregistrer le rappel dans votre méthode buildGoogleApiClient() .

    Essayez de modifier votre méthode buildGoogleApiClient ()

      mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); 

    Tout ce dont vous avez besoin, ajoutez simplement les auditeurs à votre client

      .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.