テスト

らびブログ

2019年

[Android] android.permission.ACCESS_MOCK_LOCATION

疑似ロケーションが必要になったので検索していたところ以下のブログを発見しました。
the moon at dawn : androidで嘘の位置情報を端末に伝える(擬似ロケーション) http://glayash.blogspot.jp/2012/07/android.html
この記事の中に 『「ACCESS_MOCK_LOCATIONは擬似ロケーションを生成するためのパーミッションです。「エミュレータで擬似情報を送信するためのパーミッション」という記述を見かけたことがありますが、DDMSから位置情報を送信するのにパーミッションは必要ありません。』 と書かれているので調べてみました。
API Reference : LocationManager http://developer.android.com/reference/android/location/LocationManager.html
LocationManager.addTestProvider() に 「Creates a mock location provider and adds it to the set of active providers.」 と 「SecurityException / if the ACCESS_MOCK_LOCATION permission is not present or the Settings.Secure.ALLOW_MOCK_LOCATION system setting is not enabled」 と書かれているので、疑似ロケーションを生成するためのパーミッションの様です。
試しに ACCESS_MOCK_LOCATION を書かないでエミュレータにインストールして DDMS で位置情報を送ってみたところ LocationListener.onLocationChanged() が呼ばれました。
このことから、 android.permission.ACCESS_MOCK_LOCATION と android.permission.ACCESS_FINE_LOCATION android.permission.ACCESS_COARSE_LOCATION が文字列として似ているので紛らわしい。
テスト
©2013-2019 RabiSoft