So I faced a problem to get the local Bluetooth address. I try it in 2 phones, one is running Stock Marshmallow and the other is running CM12 Lollipop. I use BluetoothChat sample from Google and add this line
Log.d(TAG, "Local Address: " + mAdapter.getAddress());
In CM12 device it does return the right local MAC Address. While in Stock Marshmallow device, it return this
00:02:00:00:00:00
I use the same source running on those phones and all permission has been granted. But why in Stock Marshmallow does not return the real MAC Address?
Update: Beside those problem. The real MAC Address is sometimes changes and then revert back to the old one. Is it normal that local MAC Address changes?