皆さん、こんにちは。
今回は、Androidにおいて「位置情報権限」について解説します。コイツはかなり曲者で、Android自体が誤解を招く表現をしているが故、多くの方が誤解していると思います。
今回はAndroidにおいて位置情報権限が必要なケースをお伝えします。
Table of Contents
- 位置情報権限を許可するとできること
- 位置情報を使わないのに位置情報権限の許可が必要な例
- まとめ
位置情報権限を許可するとできること
まず、位置情報権限を許可すると何ができるのかを列挙します。
- GPSによる位置情報の取得
- Wi-Fiスキャンによる位置情報の取得
- Bluetoothスキャンによる位置情報の取得
- 付近のWi-Fiのスキャン
- 付近のBluetooth端末のスキャン
これらが「位置情報の許可」をされたアプリができるようになることです。一番上は当たり前として、意味不明なのが赤字の下4つではないでしょうか。
「Wi-Fiをスキャンして位置情報が分かるの?」
分かるんです。実は、BluetoothやWi-Fiをスキャンすることで、現在地が超大まかに分かってしまいます。
Wi-FiやBluetoothのアクセスポイントには現在地情報が埋め込まれていることがあり、それをスキャンすることでそのWi-Fiに接続せずとも、今何県にいるか程度は分かります。(誤差半径3kmくらい)
つまり、Wi-FiやBluetoothのスキャンをすれば位置情報も分かるよね?ってことでスキャンを行うアプリはもれなく位置情報の許可が必要になります。
位置情報を使わないのに位置情報権限の許可が必要な例
ということはですよ、位置情報をアプリで利用しないにもかかわらず位置情報の許可が必要になる例があるというわけです。Wi-FiやBluetoothのスキャンだけをする場合です。
例えば、I-O DATAからリリースされている「Wi-Fiミレル」というアプリ。これはWi-Fiの情報表示アプリで、付近のWi-Fiの混雑状況をチェックする機能も付いているため、位置情報権限がないと付近のWi-Fiをスキャンできず、利用できません。
また、ヤマハのホームシアターの制御アプリ。これは付近のBluetoothをスキャンして自動的にホームシアターに接続するため、位置情報権限が必要です。
いずれのアプリにもレビューには「位置情報権限がないと起動せず怖い」などと書かれていることがありますが、その理由はこのようなことなのです。
まとめ
上のようなアプリでは、位置情報権限を要求するからと言って位置情報を使うとは限りません。しかし、この権限を許可してしまえばGPSでの位置情報の取得も可能になります。「なら位置情報を切ってしまおう」と思うかもしれませんが、これはWi-FiやBluetoothのスキャンも無効化されるため、そのアプリの機能が使えなくなります。
Wi-Fiなどのスキャンを行うアプリが位置情報を使っているかは知るすべがありません。このようなアプリを使いたい場合、位置情報の収集をしていないと信じて使うしかありません。このようなことは普通プライバシーポリシーに記載されているはずです。
ただ、Googleのような情報を商品としている企業ならともかく、上のような利用者の少ない野良アプリが位置情報を収集するメリットってほぼないと思います。(Googleは、野良アプリが可能な範疇など比ではないほどエグい位置情報収集を行っています。)
以上、Androidアプリコラム第3回でした。