我使用 FragmentActivity 中的 SupportMapFragment 在 Android 上运行良好的 Google Map API v2。
但是,当没有网络连接(也没有缓存信息)时,显然无法显示地图。LogCat 给了我一条错误消息,确认了这一点(“Google Maps Android API:无法加载地图。无法连接到 Google 服务器”),但这并没有被抛出。
我如何以编程方式检测这种情况,因为在这种情况下我想转发到不同的活动?文档声称,如果无法加载地图,则在 SupportMapFragment 上调用 getMap() 将返回 null,但情况似乎并非如此。
我一直在寻找近两天的解决方案,但找不到任何东西。我是否完全忽略了某些东西,或者真的不可能找出是否实际加载了某些东西?任何帮助是极大的赞赏。
编辑:
这是我当前的代码,执行 setContentView 后(使用调试器检查),日志中出现错误消息,但它仍然显示 ConnectionResult == SUCESS。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment smf = ((SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map));
map = smf.getMap();
if (map != null && GooglePlayServicesUtil.isGooglePlayServicesAvailable(this) ==
ConnectionResult.SUCCESS) {
// doSomething with the map
} else {
Toast.makeText(this, "Google Maps not working", Toast.LENGTH_SHORT).show();
System.out.println(GooglePlayServicesUtil.isGooglePlayServicesAvailable(this));
// forward to another activity
}
}