Android 5引入了BLE MAC地址轮换以增加隐私。每次调用BluetoothLeAdvertiser.startAdvertising()时,MAC地址都会更改。
是否可以禁用地址旋转,并在BluetoothLeAdvertiser的整个生命周期内使用相同的MAC地址?
答案 0 :(得分:13)
MAC地址是物理地址,不会更改。在BLE术语中,它是BR / EDR的公共设备地址或BD_ADDR。我没有尝试过,但是用readAddress()读取它应该每次返回相同的值。
Android的BLE框架在做广告时不会使用该地址。它通过使用可以每隔几分钟左右更改一次的私有可解析地址来实现隐私,但仍然允许绑定设备使用在绑定时交换的IRK来识别它。
出于明显的隐私原因,Android的BLE框架不允许您在广告时将Controller设置为使用公共地址。所以你不能禁用“地址旋转”。
答案 1 :(得分:1)
您可以禁用BLE隐私功能以避免MAC地址旋转, 并按如下方式更改bluedroid源代码:
http://androidxref.com/5.1.1_r6/xref/external/bluetooth/bluedroid/include/bt_target.h#1326
* Toggles support for general LE privacy features such as remote address * resolution, local address rotation etc. */ #ifndef BLE_PRIVACY_SPT -#define BLE_PRIVACY_SPT TRUE +#define BLE_PRIVACY_SPT FLASE #endif