FragmentActivity で SupportMapFragment を使用して、Android で Google Map API v2 を正常に動作させています。
ただし、ネットワーク接続がない場合 (およびキャッシュされた情報がない場合) は、明らかにマップを表示できません。LogCat はこれを確認するエラー メッセージ (「Google Maps Android API: マップの読み込みに失敗しました。Google サーバーに接続できませんでした」) を表示しますが、これはスローされません。
この場合、別のアクティビティに転送したいので、プログラムでこのケースを検出するにはどうすればよいですか? ドキュメントは、マップをロードできない場合、SupportMapFragment で呼び出された getMap() が null を返すと主張していますが、そうではないようです。
私は解決策を求めてほぼ2日間探し回っていましたが、何も見つけることができませんでした. 私は何かを見落としているのでしょうか、それとも何かが実際にロードされたかどうかを確認することは本当に不可能ですか? どんな助けでも大歓迎です。
編集:
これが私の現在のコードです。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
}
}