Android M preview 2 で自分のMACアドレスとBDアドレスが取得できない
先週、Android M preview のリビジョン2がリリースされました。
Support and Release Notes
https://developer.android.com/preview/support.html
Key changes の
が気になったので調べていたのですが、どうやらこのリリースノートは少し誤っているようです。
- Remote Bluetooth/Wi-Fi MAC's now require either the
android.permission.LOCATION_FINE
orandroid.permission.LOCATION_COARSE
permission.
調べた結果を羅列すると、
- Remote Bluetooth MAC (BT接続中の相手のBDアドレス) は Bluetooth 系の従来のパーミッションがあれば取得できる
- Remote Wi-Fi MAC が何なのかはよくわからないですが、接続先のMACアドレス?のことなら BSSID として取得できる
- 自分のMACアドレスとBDアドレスは取得できない (固定の 02:00:00:00:00:00 が返ってくる)
- リリースノートにある、android.permission.LOCATION_FINE と android.permission.LOCATION_COARSE は存在しない
- android.permission.ACCESS_FILE_LOCATION と android.permission.ACCESS_COARSE_LOCATION なら以前から存在するが、どちらをランタイムで取得しても自分のMACアドレスとBDアドレスは取得できない
- android.permission.LOCAL_MAC_ADDRESS というパーミッションがあるが、インストール時にもランタイムにも許可されない
https://code.google.com/p/android-developer-preview/issues/detail?id=2427
Location 系のパーミッションが必要になったと書いてあるので、名寄せでの現在値検知への対策ですかね。(サーバにデバイスアドレスをアップロードして、そこら中に配置した Bluetooth の機器や Wi-Fi アクセスポイントなどで集めた情報と組み合わせれば場所がわかってしまう?)
iOS の場合は iOS 7 からどちらも取得できなくなってますし、ここまで色々やっても "02:00:00:00:00:00" しか返してくれないとなるとバグではなく仕様という感じもしてきます。
ちなみに、Nexus 6 と Nexus 5 で試しましたがどちらも結果は同じでした。
次のリリースではどうなるんでしょうか。
コメント
コメントを投稿