第6回 迷わないためのAndroid端末の位置情報・GPS設定術:Windowsネットワーク管理者のためのAndroid活用入門
スマートフォンやタブレットで特に便利なマップ・アプリケーション。でも現在地が正しく表示されないこともままある。一体なぜ? Android端末を対象に、マップ・アプリケーション活用に必須のGPS・位置情報の設定方法や、プライバシー上の注意点を解説する。
スマートフォンやタブレットを持ち歩いているとき、特に便利だと感じるのはマップ・アプリケーションを使う場面だ。現在地から目的地まで、どういった経路でどのくらいの時間がかかるのか? 現在地の付近にはどんな店があるのか? 対応するマップ・アプリケーションを活用すれば容易に確認できる。
しかし、実際にAndroid端末でマップ・アプリケーションを使っていると、なぜか現在地が正しく表示されないことがままある。
また情報漏えいのニュースでは、スマートフォン/タブレットを介して自分が滞在した地点が第三者に漏れた、といった話題も目にする。いくら便利でも、こうした情報が漏れるのは是が非でも避けたい。
そこで本稿ではAndroid端末を対象に、現在地の情報すなわち「位置情報」の取り扱い方について取り上げる。Android端末がどうやって位置情報を取得しているのか、アプリケーションに対して位置情報の取得をどうやって禁止するか、正しい現在地が取得できない原因や対策は何か、といったことについて解説する。
Android端末の「位置情報」の取得方法
現在のAndroid端末は、複数の方式で「位置情報」すなわち端末の現在位置を調査(測位)・取得できる。各方式はそれぞれメリット/デメリットがある、併用することで実用的な精度の位置情報を得ることができる。以下では主要な3つの方式について、簡単に説明しよう。
GPS | Wi-Fi | セルID(携帯電話基地局) | |
---|---|---|---|
測位方式の概要 | GPS衛星による測位 | 既知のWi-Fiアクセス・ポイントの位置から測位 | 携帯電話基地局の位置から測位 |
精度 | 数m | 十数m〜約200m | 数千m |
屋内で利用できるか? | ×(GPS衛星からの電波が届かないことがよくある) | ○(鉄筋コンクリートなど電波を遮る建材により、電波を検知できない場合もある) | ○(鉄筋コンクリートなど電波を遮る建材により、電波を検知できない場合もある) |
屋外で利用できるか? | ○(ただし高いビルの谷間などGPS衛星からの電波を遮る建物があると、測位に失敗しやすい) | △(Wi-Fiアクセス・ポイントの少ない地域では、精度が悪くなる) | ○(ただし携帯電話基地局のカバー範囲外では利用できない) |
測位にかかる時間 | 遅い(数分かかる)ことがある | 早い(数秒) | 早い(数秒) |
ネットワーク接続 | 不要 | 位置情報サーバと通信できる必要がある(ネットワーク接続はWi-Fi以外でも可) | 携帯電話回線との接続が必要 |
端末の対応 | ○(ただし古い製品だと搭載されていないこともある) | ○ | ○(タブレットのWi-Fiモデルのように、携帯電話回線との通信機能がない端末では利用不可) |
Android端末の主要な測位方式 それぞれメリット/デメリットが異なるため、どれかを選ぶというより併用することで実用的な精度で位置情報を取得できる。 |
●測位方法その1: GPS
GPS(Global Positioning System)とは、米国が運用している複数の「GPS衛星」を使った測位システムのことだ。GPS衛星から発信された電波をGPS用の受信回路で受信することで、数mといった高い精度の位置情報を算出できる。最近のAndroidスマートフォン/タブレットにはたいていGPS受信回路が搭載されていて、GPSによる測位が利用できる(古い製品には搭載されていない場合もある)。
GPS衛星による測位
GPS衛星からの電波を直接受信して位置情報を取得する。最近のAndroidスマートフォン/タブレットであればたいていGPS受信回路を内蔵しているため、標準でGPSによる精度の高い測位が利用できる。
GPSによる測位のデメリットは、屋内や高いビルの谷間では衛星からの電波を受信しにくいため、測位に失敗しやすいことだ。また測位が始まってから位置情報を得るまで、長いと数分かかることもある。これをカバーするために、次に説明するセルID方式やWi-Fi方式を併用することが推奨されている。
●測位方法その2: Wi-Fi方式(無線LANアクセス・ポイントの位置情報による測位)
これは、端末の近隣にある無線LANアクセス・ポイントから送信されている電波を検知して、その位置情報から端末の現在地を測位するという方式だ。十数mから200mほどの精度で位置情報を取得できる。無線LANアクセス・ポイントの位置については、Googleなどがあらかじめ車などで実際に走りながら、そのSSIDやMACアドレスを収集し、「位置情報サーバ」に集積して管理する。端末側では、Wi-Fiを有効にすることで検知された無線LANアクセス・ポイントのSSIDやMACアドレスを位置情報サーバへ送信し、推定される位置情報を返してもらう、という仕組みだ(詳細はiPhone/iPod touch入門「第13回 iPhone/iPod touch(iOS 6)の無線LAN設定」のコラムを参照。)
無線LANアクセス・ポイントによる測位
端末では、Wi-Fiによって近隣の無線LANアクセス・ポイントからの電波を検知し、そのSSIDやMACアドレスを「位置情報サーバ」へ送信する。位置情報サーバでは現在地を推定・算出して端末に返す、という仕組みだ。無線LANアクセス・ポイントの位置は、あらかじめ車などで走行しながら収集し、位置情報サーバに集積されている。
もし携帯電話回線を経由して位置情報サーバと通信できるなら、Wi-Fiでネットワークに接続する必要はない。ネットワーク接続なしでも、無線LANアクセス・ポイントから送信されているSSIDやMACアドレスといった位置情報の算出に必要な情報は、Wi-Fiをオンにするだけで取得できるからだ。
デメリットは、無線LANアクセス・ポイントのまばらな地域や、Googleによるアクセス・ポイント位置の情報収集が行き届いていない地域ほど、精度が悪くなることだ。
●測位方法その3: セルID方式(携帯電話基地局の位置情報による測位)
これは携帯電話の通信機能を応用して、携帯電話基地局の位置情報から端末の現在地を算出するという方式だ。原理的には、3つ以上の基地局からの電波強度が判明すれば、現在地をおおよそ特定できる。
デメリットの1つは、基地局同士の間隔が空いているため、精度が数千mとよくないことだ。またタブレットのWi-Fiモデルのように、携帯電話回線との通信機能を装備していない端末では利用できない。
位置情報の取り扱いを設定する
アプリケーションに位置情報の取得を許可/禁止したり、あるいは上記の測位方式のうち、どれを利用するか、といった設定は、Android OSが備えている設定メニューから行う。ここでは、その設定方法や設定による影響、注意点について説明しよう。
●Android OS側の設定は全アプリケーションに作用する
位置情報に関する設定は、ホーム画面にある[設定]アイコン−[位置情報サービス]([位置情報アクセス][現在地情報とセキュリティ]の場合もある)とタップすると、その設定メニューが表示される。重要なポイントは、ここでの設定は全アプリケーションに作用することだ。「マップ・アプリはよく使うので常に位置情報の取得をオンにしておきたい」「でもほかのアプリではオフにしたい」と望んでも、個々のアプリケーションごとに取得の許可/禁止を設定することはできない。
また、ここでの設定で位置情報の取得を許可すると、以後、位置情報の取得を必要とするインストール済みの全アプリケーションは、ユーザーの明示的な確認なしで位置情報を取得できるようになる。もし現在地の漏えいを狙った悪意のあるアプリケーションが混入していると、いったん許可した後は、そのアプリケーションから現在地がネットワークを介してどこかのサーバへ送信され続ける、という可能性だって考えられるわけだ。こうした危険性は認識しておきたい。
●Android OS側の位置情報の設定項目(Ver. 4.1〜4.3の場合)
Android OS側の位置情報の設定は、OSのバージョンによって設定の項目および結果が異なるので、以下では3パターンに分類して説明する。ただし先にいっておくと、OSのバージョンにかかわらず、最も精度の高い測位を利用するにはすべての設定を有効にするよりほかにはない。
Android OS 4.1〜4.3の場合、[設定]の[位置情報サービス]または[位置情報アクセス]をタップすると、位置情報の設定画面が表示される。
位置情報の設定画面の例(右:Android OS 4.1.2、左: Android OS 4.3.0)
(1)アプリケーションに位置情報の取得を許可するには、これをオンにする。
(2)GPSによる測位を有効にするには、これをオンにする。
(3)これをオンにすると、Wi-Fi/携帯電話基地局による測位が可能になるほか、匿名で位置情報がGoogleのサーバに送信されるようになる。
■[位置情報にアクセス]
これをオンにすると、位置情報の取得を求める全アプリケーションに対して、位置情報の取得・使用が許可される。以後、これらのアプリケーションはユーザーの明示的な確認を経ないで位置情報を使用できる(ただし、アプリケーション側でも設定を変更するまで位置情報を使わない、オプト・アウト方式のアプリケーションも存在する)。オフにすると、全アプリケーションで位置情報の取得が禁止される。
■[GPS機能]
オンにすると、アプリケーションはGPSによる精度の高い位置情報を使用できるようになる。
■[Google位置情報サービス]/[Wi-Fi/モバイル接続時の位置情報]
オンにすると、アプリケーションはWi-Fi/セルIDによる測位で位置情報を取得できるようになる。さらに、匿名化された状態で現在地データが収集されてGoogleのサーバに送信されるようになる。
●Android OS側の位置情報の設定項目(Ver. 4.0の場合)
Android OS 4.0の場合、[設定]の[位置情報サービス]をタップすると、以下のような位置情報の設定画面が表示される。
位置情報の設定画面の例(Android OS 4.0.3)
アプリケーションに位置情報の取得を許可するには、少なくとも(1)あるいは(2)のどちらかをオンにする必要がある。
(1)これをオンにすると、Wi-Fi/携帯電話基地局による測位が可能になるほか、匿名で位置情報がGoogleのサーバに送信されるようになる。
(2)GPSによる測位を有効にするには、これをオンにする。
(3)地磁気センサや加速度センサなどといったセンサから得られる情報を、位置情報の精度向上や消費電力低減に利用するための設定項目。端末によっては存在しない場合もある。
(4)Google検索を始めとするGoogleのサービスで、取得された位置情報を活用するかどうかの設定項目。
■[Googleの位置情報サービス]
これをオンにすると、まず位置情報の取得を求める全アプリケーションに対して、位置情報の取得・使用が許可される。またWi-Fi/セルIDによる測位で位置情報をアプリが取得できるようになる。さらに、匿名化された状態で現在地データが収集されてGoogleのサーバに送信されるようになる。
■[GPS衛星]
これをオンにすると、まず位置情報の取得を求める全アプリケーションに対して、位置情報の取得・使用が許可される。またGPSによる精度の高い位置情報を使用できるようになる。
●Android OS側の位置情報の設定項目(Ver. 2.3.7の場合)
Android OS 2.3.7の場合、[設定]の[現在地情報とセキュリティの設定]をタップすると、以下のような位置情報の設定画面が表示される。
位置情報の設定画面の例(Android OS 2.3.7)
アプリケーションに位置情報の取得を許可するには、少なくとも(1)あるいは(2)のどちらかをオンにする必要がある。
(1)これをオンにすると、Wi-Fi/携帯電話基地局による測位が可能になる。また、匿名で位置情報がGoogleのサーバに送信されるようになる。
(2)これをオンにすると、GPSによる測位が可能になる。また、匿名で位置情報がGoogleのサーバに送信されるようになる。
■[無線ネットワークを使用]
これをオンにすると、まず位置情報の取得を求める全アプリケーションに対して、位置情報の取得・使用が許可される。またWi-Fi/セルIDによる測位で位置情報をアプリが取得できるようになる。さらに、匿名化された状態で現在地データが収集されてGoogleのサーバに送信されるようになる。
■[GPS機能を使用]
これをオンにすると、まず位置情報の取得を求める全アプリケーションに対して、位置情報の取得・使用が許可される。またGPSによる精度の高い位置情報を使用できるようになる。さらに、匿名化された状態で現在地データが収集されてGoogleのサーバに送信されるようになる。
位置情報の取得を許可/禁止したときのアプリケーションの挙動
ここまで説明したように位置情報の取得を許可/禁止したとき、アプリケーション側で注意すべき点を説明する。
●位置情報を使用するアプリケーションの見分け方
そもそもアプリケーションが位置情報を使用するかどうかは、インストール時のアクセス許可一覧から確認する。具体的には「現在地」という項目があれば、位置情報を取得すると判断できる。
位置情報を使用するアプリケーションのアクセス許可一覧の例
これはGoogle PlayストアからFacebookの公式アプリケーションをインストールしようとしたときに表示されたアクセス許可一覧。
(1)これが表示されるアプリケーションは、位置情報を使用すると判断できる。
●禁止されている場合は許可を求めるダイアログが表示される
位置情報の取得が許可されている場合、アプリケーションは特にユーザーへ明示的に許可を求めることなく位置情報を使用「できる」ようになる。ただし、実際に使用するかどうかはアプリケーションの設定に依存する(後述)。
逆に位置情報の取得が禁止されている場合、アプリケーションはユーザーに対してその許可を求めるダイアログを表示する。
位置情報取得の許可を求めるダイアログの例
これはAndroid OS側で位置情報の取得を禁止してから、モバイル版Googleマップを起動した直後の画面。
(1)これをタップすると、前述のAndroid OSの位置情報設定画面に切り替わる。そこで位置情報の取得を許可すると、このGoogleマップだけではなく(位置情報を使用する)全アプリケーションに対して位置情報の取得が許可されてしまう。
ここで「許可する」をタップすると、Android OSの位置情報設定メニューが表示される。そこで位置情報の取得を許可すると、ダイアログを表示したアプリケーションだけではなく、位置情報を求める全アプリケーションに対して位置情報の取得が許可される。ユーザー・インターフェイスの遷移からいって、ダイアログを表示したアプリケーションだけに許可したように勘違いしやすいので要注意だ。
アプリケーション側の位置情報の取り扱いに関する設定
Android OS側で位置情報の取得を許可している場合、アプリケーションが位置情報をどのように取り扱うかは、まさにアプリケーション次第である。とはいえ一般的には、端末の外部、すなわちネットワーク経由でどこかに位置情報を送信する機能については、アプリケーション側の設定でオン/オフできる。これをデフォルトでオフにしている、すなわちオプト・アウトにしているアプリケーションは少なくない。そのため、位置情報を積極的に活用したい場合はアプリケーション側の設定もオンにする必要がある。逆にプライバシー保護のためには、この設定がオフになっているかよく確認すべきだ。
例えばカメラ・アプリの場合、撮影した写真データに撮影地の緯度・経度を加えるかどうか設定できる場合がある。アプリケーションの設定メニューで「ジオ・タグ」「GPSタグ」といった単語で探すと、この設定項目を見つけられる。
カメラ・アプリでの位置情報の設定例
上はカメラ・アプリの設定メニュー。下はWindows上で開いた写真データのプロパティ。
(1)このカメラ・アプリの場合、「GPSタグ」をオンにすると撮影地点の位置情報が取得され、写真データに記録される。
(2)(1)をオンにした後に撮影した画像のプロパティ。撮影地点を表す緯度・経度が記録されている。余談だが、このような写真をSNSに投稿したりすると、どこで撮影したのか他人に知られてしまうこともある。
現在地が正しく取得されない場合の対処方法
マップ・アプリを使っていると、なぜか現在地が正しく表示されないことがある。そんなときの対策として考えられるものをピックアップしてみた。
●すべての測位方法を利用できるようにする
Wi-FiやセルIDだけで測位をしている場合はGPSも有効にしてみる。逆もまたしかりだ。特にGPSだけ有効にしていて測位に時間がかかる場合は、Wi-Fi/セルIDも有効にすると数秒ほどで測位が完了するようになることもある。
●建物から出るか、建物の陰から離れる
屋内や高いビルの谷間では、GPS衛星からの電波が遮られて端末に届かないことがある。可能であれば建物から出て移動することで、GPSで測位できるようになることもある。
●Android OSやマップ・アプリを更新する
Android OSやマップ・アプリというソフトウェアの不具合により、特定の状況下で位置情報の取得がうまくいかない、という症例も過去には見つかっている。もし更新版があるなら、リリースノートを確認しつつ更新してみるのも手だ。
今回はAndroid端末で位置情報を活用するための概要や設定方法、注意点を解説した。アプリケーションで実用的な精度を得るには、端末が利用できるすべての測位方法を有効にするよりほかにない。ただGPSやWi-Fiを有効にすると消費電力が増えてバッテリー持続時間が短くなりがちだ。バッテリーに余裕がない場合は、該当アプリケーションを使い終えたらGPSを(不必要ならWi-Fiも)オフにするといった運用も検討すべきだろう。
プライバシーを重視する場合は、必要なときだけ位置情報取得を許可して、終わったら禁止に戻す、という使い方をするよりほかない。それが面倒であれば、ベストの解ではないが、信用のおける(定評のある)アプリケーションを厳選してインストールし、それぞれ位置情報を送信するような設定を適宜オン/オフすることになるだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.