gpt4 book ai didi

android - 为什么我的 BluetoothDevice 的地址在我每次重新启动应用程序时都会改变?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:13:09 25 4
gpt4 key购买 nike

我正在使用此 sample-code 对 Android 的蓝牙 LE 功能进行一些简单的扫描 + 广告测试

我正在使用三星 6 和 Nexus 9 对其进行测试,出于某种原因,如果我让应用程序在三星上运行并在 Nexus 上重新启动应用程序,下次三星设备找到其他设备时,它有不同的地址。

在代码中:

enter image description here

在设备上:

enter image description here

有趣的是它并没有以相反的方式发生。 (从 Nexus 9 发现时,三星始终具有相同的地址)

  • 这是设备之间的常见行为吗?
  • 除了 mac 地址之外,还有其他方法可以识别特定设备吗?

最佳答案

正如 CommonsWare 所提到的,从 Android 6.0 开始,Android 已经以编程方式删除了对硬件地址的访问,并使该地址看起来是随机生成的以扫描设备。可以在此处找到更改日志:

http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id

扫描设备看到随机蓝牙地址而不是实际地址这一事实是一项非常有用的隐私功能。从 BTv4.0 开始,它被蓝牙规范采用,被称为 LE 隐私:

此功能会导致广告数据包中的 MAC 地址被随机值替换,该随机值会按制造商确定的时间间隔发生变化。任何恶意设备,如果沿着您的旅行路线间隔放置,将会无法确定从您的设备接收到的一系列不同的、随机生成的 MAC 地址实际上与同一物理设备相关。它实际上看起来像是一系列不同的设备,因此,将无法使用宣传的方式跟踪您MAC地址[1]

你可以在这里找到类似的问题:-

Since marshmallow update Bluetooth discovery using BluetoothAdapter.getDefaultAdapter().startDiscovery(); is broken

[1] http://blog.bluetooth.com/bluetooth-technology-protecting-your-privacy/

关于android - 为什么我的 BluetoothDevice 的地址在我每次重新启动应用程序时都会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com