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_FINEandroid.permission.LOCATION_COARSE は存在しない
  • android.permission.ACCESS_FILE_LOCATIONandroid.permission.ACCESS_COARSE_LOCATION なら以前から存在するが、どちらをランタイムで取得しても自分のMACアドレスとBDアドレスは取得できない
  • android.permission.LOCAL_MAC_ADDRESS というパーミッションがあるが、インストール時にもランタイムにも許可されない
Issue トラッカーにも既に上がっていてステータスは Acknowledged です。
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 で試しましたがどちらも結果は同じでした。

次のリリースではどうなるんでしょうか。

コメント

このブログの人気の投稿

Lumia 920買った - LTE有効化と開発端末登録

Android で Unicode絵文字入力

Nexus 5 買った