Sto aggiungendo un MapFragment alla mia app e avere il codice seguente, adattato da un tutorial mappe:pulsante finestra di errore GooglePlayServicesUtil non fa nulla
private boolean servicesConnected() {
// Check that Google Play services is available
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
// If Google Play services is available
if (ConnectionResult.SUCCESS == resultCode) {
// In debug mode, log the status
Log.d("Location Updates", "Google Play services is available.");
// Continue
return true;
// Google Play services was not available for some reason
} else {
GooglePlayServicesUtil.getErrorDialog(resultCode, this, 7).show();
return false;
}
}
sto testando su un reset di fabbrica Galaxy Tab 10.1 con obsoleto servizi di gioco di google. Quindi quando provo ad aprire MapFragment, chiamo lo servicesConnected()
per controllare e, come previsto, ottengo una finestra di dialogo che mi dice che ho bisogno di Google Play Services. Nella parte inferiore della finestra di dialogo è presente un pulsante "Ottieni servizi Google Play" ma quando faccio clic su di esso, non fa nulla. Il mio LogCat produce il seguente output:
07-23 15:30:43.580: W/GooglePlayServicesUtil(2515): Google Play services is missing.
07-23 15:30:48.510: E/SettingsRedirect(2515): Can't redirect to app settings for Google Play services
Ho la onConnectionFailed
seguente metodo (sostanzialmente una copia-incolla dal sito dello sviluppatore Android):
public void onConnectionFailed(ConnectionResult connectionResult) {
/*
* Google Play services can resolve some errors it detects.
* If the error has a resolution, try sending an Intent to
* start a Google Play services activity that can resolve
* error.
*/
if (connectionResult.hasResolution()) {
try {
// Start an Activity that tries to resolve the error
connectionResult.startResolutionForResult(
this,
CONNECTION_FAILURE_RESOLUTION_REQUEST);
/*
* Thrown if Google Play services canceled the original
* PendingIntent
*/
} catch (IntentSender.SendIntentException e) {
// Log the error
e.printStackTrace();
}
} else {
/*
* If no resolution is available, display a dialog to the
* user with the error.
*/
GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(), this, 7).show();
}
}
Perché non è questo lavoro? Qualsiasi aiuto sarebbe grande.
Here 's la pagina dev di Android da cui lavoro, e here' s un post SO relativo ad esso pure.
Modifica
mi sono reso conto che non avevo un account Google configurato sul dispositivo in modo da crearne uno, ma non faceva alcuna differenza.
Ho provato questo e ha funzionato una volta ma era disordinato. Così ho cambiato un altro codice, disinstallato i servizi di Google Play e ho provato di nuovo e non funziona. Ho annullato tutte le mie modifiche e ancora non funziona ... –
Ora funziona di nuovo. Senza cambiare una cosa –
Il codice "non dovrebbe" eseguire su quella linea, ma nel caso in cui: si chiama dialog.show() all'interno dell'istruzione if (dialog == null) – Ripityom