--> -->
#blog2navi() *Google Play Service Availableチェックではまる [#b4484767] Google Playを利用したアプリの作成時は、端末を初期化した状態でのテストも欠かせません。Google Playが初めての利用だったり、そもそもGoogle Playが入っていない(Android 2.2でもandroidマーケットを更新しないとplayにならないものがある、私の使ってるGalaxy S SC-02Bとか・・)場合があるからです。~ ~ そんな確認をしていて、[[isGooglePlayServicesAvailable():http://developer.android.com/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#isGooglePlayServicesAvailable%28android.content.Context%29]]の実装の必要性に気づき、色々お世話になっている以下のページを参考に実装しました。~ [[http://dev.classmethod.jp/smartphone/android/android-google-play-services-2/:http://dev.classmethod.jp/smartphone/android/android-google-play-services-2/]]~ ~ 当初、例を参考に、 #code(java){{ // ErrorDialog の表示 Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, REQUEST); if (dialog != null) { ErrorDialogFragment frag = new ErrorDialogFragment(); frag.setDialog(dialog); frag.show(getSupportFragmentManager(), "error_dialog_fragment"); } }} という感じで実装し、Dialog用のActivityを作ったり、それだと真っ黒な画面が出てしまうのでDialogがDismissされたらCallbackでActivityもfinish()したりと、いろいろやったのですが、ダイアログ表示中に画面を回転させるとNullPointerExceptionが発生してしまう現象がどうしても解決できませんでした。~ ~ どうやら原因は、以下のサイトにあるように、回転時にDialogFragmentが再生される際、Activityからの生成ではなく直接onCreateDialogが呼ばれてしまい、返り値を作れなくて落ちるという現象でした。~ [[http://y-anz-m.blogspot.jp/2012/04/androidfragment-setarguments.html:http://y-anz-m.blogspot.jp/2012/04/androidfragment-setarguments.html]]~ ~ そこで、[[このあたり:http://www.techmaru.net/wordpress/20101121/onsavelistview/]]を参考にしながら、Serializeで値を保存する方策を探ってみたのですが、Dialog型のSerializeが分からずに断念(そもそも無理?)。~ ~ 違う方面からのアプローチを探していたら、[[こちら:http://wptrafficanalyzer.in/blog/retain-markers-on-screen-rotation-in-google-maps-android-api-v2-using-parcelable-latlng-points/]]のサイトで良い方法を見つけました。~ それはなんと、以下のように、 #code(java){{ Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, REQUEST); dialog.show(); }}; getErrorDialog()した後、DialogFragmentを使わずに''そのままdialog.show();''してしまうというもの。~ なんだ、これでいいんだ・・・脱力。 ---- #htmlinsert(20130818_datsuryoku.html) ---- RIGHT:Category: [[[android>日記/Category/android]]] - 16:45:19 ---- ~ RIGHT:&blog2trackback(); #comment(above) #blog2navi() }}