【Android】パーミッションを取得していても WifiManager#getScanResults の戻り値が空になる

Android6.0以降では WifiManager#getScanResults を実行するにはパーミッションが必要になっています。

参考:Android 6.0 以降で WifiManager.getScanResults() を普通に実行しても結果が空のリストになってしまう | 穀風

パーミッションを取得していても、実際に使っていると時々空のリストが返される事がありました。

原因は端末の位置情報がOFFになっている事でした。

Wifiの情報を得るのに位置情報がONになっている必要があるのは盲点でしたが、必要なパーミッションを考えると納得です。
GoogleにはMACアドレスから位置情報を得るAPIもありますからね。

ということで、WifiManager#getScanResults を使う前にはパーミッションに加えて、位置情報がONになっている事を確認しましょう。

スポンサーリンク

フォローする