我使用FragmentActivity中的SupportMapFragment,使Google Map API v2在Android上正常工作。如何以pogrammatically方式檢測Google地圖是否實際上通過API v2在Android上加載(例如網絡不可用時)?
但是,當沒有網絡連接(並且沒有緩存的信息)時,顯然不能顯示地圖。 LogCat給我一個確認這個錯誤的消息(「Google Maps Android API:無法加載地圖,無法連接到Google服務器」),但這不會被拋出。
如何以編程方式檢測此案例,因爲我想在此情況下轉發到其他活動?該文檔聲稱,如果沒有地圖可以加載getMap()在SupportMapFragment上調用將返回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
}
}
非常感謝這些想法,僅實施了no。 1,它似乎工作得很好。 但是,我有點不明白爲什麼Google不會以編程方式提供LogCat中的錯誤消息。 – Oliver 2013-04-06 10:15:56
@Oliver你將不得不使用這兩個知道。應用程序第一次啓動時,您將擁有空的緩存,但即將加載磁貼。給答案增加了第三道黑客。 – 2013-04-06 10:29:33
是的,你是對的,但對於我的目的而言,看到緩存地圖應該沒問題。再次感謝!出於好奇,我如何以編程方式獲得LogCat文本?順便說一句,我只是試了一下,當緩存瓷磚可用時,錯誤信息不會出現... – Oliver 2013-04-06 13:00:12