使用 Google Maps Android API V2 时,我将按照Google Play 服务设置文档进行检查,以确保已安装 Google Play 服务,在我的主要活动中使用以下代码:
@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);
}
这工作正常。但是,我注意到我放置的一些较旧的 Android 手机(主要运行 2.2)缺少 GooglePlayServices 以及 Google Maps 应用程序本身。
LogCat 会报这个错误:Google Maps Android API: Google Maps application is missing。
问题- 我如何执行与上述类似的检查以检查设备上 Google 地图的可用性?其次,如果用户已经安装了谷歌地图,我认为检查需要确保他们安装的版本与 Android Maps API V2 兼容。
更新 这是我的 setupMapIfNeeded() 方法,它在 onCreate() 结束时调用。这是我想我想确定是否安装了谷歌地图并提醒用户的地方,请参阅 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);
}
}
}