ラベル Bluetooth の投稿を表示しています。 すべての投稿を表示
ラベル Bluetooth の投稿を表示しています。 すべての投稿を表示

WifiInfo.getMacAddressが常に02:00:00:00:00:00を返す件(Android 6.0)


Android6.0でBluetoothとWifiのMACアドレスの扱いが変更になりました。
Android 6.0 Changes のAccess to Hardware Identifierに記載があります。


少量なので簡単に翻訳してみました。

ユーザデータ保護のため今回のリリースからAndroidはアプリケーションがWi-FiおよびBluetoothのAPIを使用して端末固有識別子へのアクセスする機能を削除しました。
WifiInfo.getMacAddress()とBluetoothAdapter.getAddress()メソッドは02:00:00:00:00:00を返します。
近距離外部のデバイスのBluetoothやWifiのハードウェア識別子にアクセスするには、ACCESS_FINE_LOCATION や ACCESS_COARSE_LOCATIONの権限を持っている必要があります。
  • WifiManager.getScanResults()
  • BluetoothDevice.ACTION_FOUND
  • BluetoothLeScanner.startScan()

NOTE:Android 6.0(API Level23)の端末がバックグラウンドでWi-FiもしくはBluetoothのスキャンを開始した場合、外部の端末にはその処理がランダムなMACアドレスから発信されたものとして認識されます。

簡単に纏めると
  • BluetoothやWifiのMacアドレスを取得すると常に02:00:00:00:00:00を返す。
  • スキャンする時はパミッションが必要になった。
  • WiFiやBluetoothスキャン時にランダムのMACアドレスを使用するようになった。
となります。

iOSでは去年8月頃にWifiネットワークスキャン時にMACアドレスをランダムに生成するという変更が入りましたので、その追従という形なのでしょうか。。。。

参考