Google Maps API Android V2 vérifier si GoogleMaps sont installés sur le périphérique
Lors de l'utilisation de Google Maps API Android V2 je suis à la suite de la Google Play Services de documentation d'installation de faire une vérification pour s'assurer que les Google Play Services sont installés, en utilisant le code suivant dans mon Activité principale:
@Override
public void onResume()
{
checkGooglePlayServicesAvailability();
super.onResume();
}
public void checkGooglePlayServicesAvailability()
{
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(resultCode != ConnectionResult.SUCCESS)
{
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
dialog.setCancelable(false);
dialog.setOnDismissListener(getOnDismissListener());
dialog.show();
}
Log.d("GooglePlayServicesUtil Check", "Result is: " + resultCode);
}
Cela fonctionne bien. Cependant, j'ai remarqué quelques-uns des vieux téléphones Android j'ai autour de la pose (surtout l'exécution 2.2) manquaient à la fois GooglePlayServices ainsi que l'application Google Maps lui-même.
LogCat permettra de signaler cette erreur:
Google Maps API Android: application Google Maps est manquant.
Question - comment puis-je effectuer un test similaire à celui ci-dessus pour la disponibilité de Google Maps sur un appareil? Deuxièmement, si l'utilisateur a déjà Google Maps installé je pense que le chèque devra s'assurer que leur version installée est compatible avec la V2 de l'Android Maps API.
Mise à jour
Voici mon setupMapIfNeeded() méthode qui est appelée à la fin de onCreate(). C'est là que je pense que je serais à déterminer si Google Maps est installé et alerte l'utilisateur, voir le bloc else:
private void setUpMapIfNeeded()
{
//Do a null check to confirm that we have not already instantiated the map.
if (mMap == null)
{
//Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.basicMap)).getMap();
if (mMap != null)
{
mMap.setLocationSource(this);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(44.9800, -93.2636), 10.0f));
setUpMap();
}
else
{
//THIS CODE NEVER EXECUTES - mMap is non-null even when Google Maps are not installed
MapConstants.showOkDialogWithText(this, R.string.installGoogleMaps);
}
}
}
- Puis-je demander quoi que 69 vous avez sur le getErrorDialog méthode paramétrée ?
- Le 69 est juste la demande de code (je l'ai choisi). Voir la getErrorDialog méthode developer.android.com/reference/com/google/android/gms/common/...
Vous devez vous connecter pour publier un commentaire.
Bien après plus piquer et à les pousser, j'ai réalisé, j'ai juste besoin de demander PackageManager si google maps sont installés. OMI, cela devrait vraiment être inclus dans les Cartes Google maps API Android V2 guide pour les développeurs...il y a beaucoup de devs qui manquent ce cas et ont frustré les utilisateurs.
Voici comment vérifier si Google Maps sont installés et rediriger l'utilisateur vers le Play Store de référencement de google maps si elle n'est pas installée (voir
isGoogleMapsInstalled()
):J'ai écrit un petit post de blog avec ces détails: Comment vérifier si Google Maps sont installés et rediriger l'utilisateur vers le Play Store
À partir de Google
Vous pouvez vérifier que la GoogleMap est disponible en appelant le MapFragment.getMap() ou MapView.getMap() les méthodes, et en vérifiant que l'objet retourné est pas null.
Vous pouvez lire sur de vérifier la carte de disponibilité ici.