首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么每次我重新启动应用程序时,我的BluetoothDevice地址都会改变?

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

Stack Overflow用户
提问于 2016-03-23 14:03:39
回答 1查看 16.1K关注 0票数 10

我正在做一些简单的扫描+广告测试,用这个样本码对安卓的蓝牙功能进行广告测试

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

代码:

在设备上:

有趣的是它不会发生在相反的情况下。(从Nexus 9中发现三星的地址总是相同的)

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-26 12:45:13

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

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

事实上,扫描设备看到的是随机蓝牙地址,而不是实际地址,这是一个非常有用的隐私特性。它在BTv4.0时被蓝牙规范所采用,并被称为LE隐私:

“此功能使广告包内的MAC地址被替换为一个随机值,该值按制造商确定的时间间隔变化。任何恶意设备,如果放置在您的旅行路线上,将无法确定从您的设备接收到的一系列不同的随机生成的MAC地址实际上与同一物理设备有关。它看起来实际上是一系列不同的设备,因此,不可能使用广告中的MAC地址跟踪您”1。

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

因为棉花糖更新了使用BluetoothAdapter.getDefaultAdapter().startDiscovery();的蓝牙发现失败了

1

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36180407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档