FarEast3 微修正

AndroidアプリのFarEast3について、
パーミッション(GPS)を設定していない場合、これまではGPSの情報が取れないだけだった。
Android Studioのバージョンが上がったのを契機に、ちょっといじりました。
Min Sdk Version: → API 26: Android 8.0 (Oreo)
すると、GPS情報にアクセスしようとすると例外で落ちるようになりました。
googleってみると、Runtime Permissionのためらしい。
実行時のパーミッション リクエスト@Android Developers
Android 6.0以降らしいので、これまで気づいていなかっただけのようです。
1年半ぶりにAndroidアプリをいじったのは、アプリショートカット機能(Android 7.1以降で対応)を付けて見ようかなと思ってでした。
しかし、上記のように落ちるのは、私用でだけ使ってるアプリとしてもあんまりなので、先に対応してみます。

1. GPSのパーミッション
使用しているのは次のパーミッションです。
LOCATION: ACCESS_FINE_LOCATION
システム パーミッション@Android Developers
で調べてみると、表 1. Dangerous パーミッションに分類されています。
[Android] Runtime Permission, Dangerous Permission
このパーミッションの判定を、次の場合に行いたい。
・起動時
・ログ開始時
2. 起動時の判定
次を参考にした。
AppLaunchCheckerを使って初回起動を判断する
しかし、画面の回転時にも、初回と判定される。
原因は、Manifest.xmlに次の設定が不足していたためでした。
<activity android:name=”.MainActivity” android:configChanges=”orientation|screenSize”>
画面の縦横切り替え、回転の検知(Android)
これを追加して上記の方法で初回起動判定し、
パーミッションの取得ダイアグラムを表示することができた。
これ関係で無駄なparsel処理があるので、整理しないと。
とりあえずの目的は達成。