English

チュートリアル - 端末位置情報の自動更新

目次

1. 概要
2. Android端末位置情報の追跡手法
3. 本アプリ主画面の構成変更
4. Android端末の位置情報を扱うための設定
4.1 Androidシステム側の設定
4.1.1 システム設定における位置情報設定画面への移動
4.1.2 高精度の位置情報取得を可能とする設定(Android 8)
4.1.3 高精度の位置情報取得を可能とする設定(Android 9以上)
4.2 アプリケーション側の設定
4.2.1 本アプリにおける位置情報設定画面への移動
4.2.2 動作モードごとの設定方法

1. 概要

本アプリで収集したセンサー情報はJSON形式に整形されて配信されます。 このJSONデータにはデバイス情報としてAndroid端末の地理的な位置情報(緯度、経度)を任意で設定できるようになっています。

{
    "device": {
        "sysinfo": {},
        "userinfo": {},
        "location": {
            "latitude": "139.767120",
            "longitude": "35.681236"
        }
    },
    "sensors": []
}

本アプリが動くAndroid端末を特定の場所に固定して使う用途であれば、 既知の位置情報を静的に設定する方法で何ら問題ありません。 しかし同Android端末を移動体に載せて使う場合、刻々と変化する端末位置を継続的に監視しつつJSON出力時に最新の位置情報を反映する方式が望ましいです。 本書では、後者の目的を実現するための本アプリの使い方、および所用のAndroid端末のシステム設定方法を紹介します。

OSのバージョン違いにより画面構成やシステムメッセージの文言表現が多少変わるかもしれません。 お手元のAndroid端末の動作環境に合わせて適宜読み替えてください。

2. Android端末位置情報の追跡手法

Androidシステムでは端末の位置情報を追跡する機構がいくつか用意されており、適当な契機でユーザアプリケーションに通知可能となっています。 本アプリの実装では下記「GPSFLP」の何れかの方式をユーザが指定し、位置情報を自動更新できるようにしています。

〈参考〉

3. 本アプリ主画面の構成変更

位置情報有効時の動作画面例

本アプリの設定画面「センサー情報」にて端末位置設定を有効に設定すると、 動作モード(固定値、あるいはGPSFLPによる自動取得)ごとの情報表示欄が主画面下部に追加されます(図中ラベル2)。 端末位置を自動取得する動作モードの場合、位置情報取得サービス稼動中であることを示す「羅針盤」アイコンが表示されます(図中ラベル1)。

4. Android端末の位置情報を扱うための設定

Androidシステムにおいて端末の位置情報はプライバシー保護対象と考えられています。 任意のアプリケーションがこれにアクセスするためには、次の各項目の要求条件を同時に満たす必要があります[1][2]。

〈参考〉

4.1 Androidシステム側の設定

4.1.1 システム設定における位置情報設定画面への移動

位置情報設定画面への移動

システム設定画面(a)のうち位置情報関連の設定項目に着目してください。 上記「1 -> 2」の順でメニュー項目を選択し、位置情報設定用の画面(c)に移行します。 Androidシステムバージョンにより画面構成やメニュー構成が異なる可能性はありますが、最終的には位置情報設定用の画面に到達してください。

4.1.2 高精度の位置情報取得を可能とする設定(Android 8)

必要事項の設定(Android 8)

本アプリで位置情報の自動更新を有効とするには、以下の3項目を指定どおりに設定する必要があります。 ここではAndroid8での動作イメージを示します。

項番 設定項目 備考
1 Location ON  
2 Mode High accuracy Device onlyも可
3 App-level permissions SensorアプリケーションをON  

システム設定項目は全てのアプリケーションに適用されるものであり、本アプリケーション実行時に必ずしも上記の通りになっていない可能性があります。 本アプリ実行後に上記システム設定項目が変更される可能性があるためです。 その場合、上記の各項目に対応して設定変更を促すダイアログが表示されます。 お手数ですが改めて上記の設定状態を満足するようにしてください。

4.1.3 高精度の位置情報取得を可能とする設定(Android 9以上)

必要事項の設定(Android 9以上)

Android9以降は、従来の位置情報モード選択が廃止され、代わりに 新しいメニュー項目Google Play 開発者サービス にていくつかの位置情報サービスをまとめて扱うようになりました。 ここではGoogle 位置情報の制度 に着目してください。

本アプリで位置情報の自動更新を有効とするには、以下の3項目を指定どおりに設定する必要があります。 ここではAndroid 9での動作イメージを示します。

項番 設定項目 備考
1 Location ON  
2 App-level permissions SensorアプリケーションをON  
3 Location services Google Location AccuracyをON 初期状態はAdvancedに隠れているのでこれを展開する

システム設定項目は全てのアプリケーションに適用されるものであり、本アプリケーション実行時に必ずしも上記の通りでない可能性があります。 本アプリ実行後に上記システム設定項目が変更される可能性があるためです。 その場合、上記の各項目に対応して設定変更を促すダイアログが表示されます。 お手数ですが改めて上記の設定状態を満足するようにしてください。

〈参考〉
Android 8、および9以降の位置情報設定内容の対応関係は以下の通りです。

Android 8 Android 9+
Location: On/Off Location: On/Off
Mode: Battery Saver N/A
Mode: Device Only Location: On, Google Location Accuracy: Off
Mode: High Accuracy Location: On, Google Location Accuracy: On

4.2 アプリケーション側の設定

4.2.1 本アプリにおける位置情報設定画面への移動

位置情報設定画面への移動

本アプリの設定画面(a)のうち「Sensor」関連の設定項目に着目してください。 上記「1 -> 2」の順でメニュー項目を選択し、位置情報設定用の画面(c)に移行します。 初期状態では位置情報設定は無効化されています。

4.2.2 動作モードごとの設定方法

動作モードごとの設定方法

位置情報を利用する場合、まずはグローバルスイッチ(1)を有効に設定してください。

Android端末の位置を固定して使うのか、あるいは移動しながら使うのかにより以降の設定方法が分かれます。