所以我遇到了获取本地蓝牙地址的问题。我在2部手机中试用,一部运行Stock Marshmallow,另一部运行CM12 Lollipop。我使用Google的BluetoothChat示例并添加此行
Log.d(TAG, "Local Address: " + mAdapter.getAddress());
在CM12设备中,它确实返回正确的本地MAC地址。在Stock Marshmallow设备中,它会返回此
00:02:00:00:00:00
我使用在这些手机上运行的相同来源,并且已授予所有权限。但是为什么股票Marshmallow不会返回真正的MAC地址?
更新: 除了那些问题。实际MAC地址有时会更改,然后恢复为旧MAC地址。本地MAC地址改变是正常的吗?
答案 0 :(得分:2)
自Android M(与无线MAC地址相同)故意破坏BluetoothAdapter.getAddress()。见https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id 这显然违反了API,但有意也不会改变。
另见https://code.google.com/p/android-developer-preview/issues/detail?id=2427
编辑:请在此处查看我的答案https://stackoverflow.com/a/34016529/1876573