Android 6.0 Marshmallow (API Level 23) ではローカルデバイスIDが取得できない(確定)
Android M preview 2 で自分のMACアドレスとBDアドレスが取得できない の続きです。 先日 Android SDK 6.0 の最終盤がリリースされました。 Build.VERSION_CODES.M のままで Build.VERSION_CODES.MARSHMALLOW になってなかったりするのでしれっともう一回更新されるかもしれませんが、まあ少なくとも仕様はほぼ最終版だと信じてもいいでしょう。 Android アプリ開発者が怯える Behavior Changes のページに、今回から Access to Hardware Identifier の項目が追加されました。 To provide users with greater data protection, starting in this release, Android removes programmatic access to the device’s local hardware identifier for apps using the Wi-Fi and Bluetooth APIs. The WifiInfo.getMacAddress() and the BluetoothAdapter.getAddress() methods now return a constant value of 02:00:00:00:00:00 . ユーザデータ保護の目的のため、ローカルデバイス ID はコード上から取得できなくなり、ダミーアドレスが返されます。(意訳) 回避手段はなし。