当前位置: 首页 > 知识库问答 >
问题:

BLE和Android:使用设备公共地址直接连接

燕智
2023-03-14

我对BLE和Android上的BLE是新手,我试图理解Android是如何管理BLE地址的。通过查看不同的帖子和android文档,我了解到android正在通过在广告和扫描时使用私人可解析地址来加强LE隐私。

我有一个具有挑战性的时间限制的用例,理想情况下,我希望通过使用2个Android设备的MAC地址来执行直接的BLE连接,而不是执行通常的扫描/广告发现。不幸的是,出于隐私原因,Android现在使用BluetoothAdapter.getAddress()阻止了对当前设备地址的访问,这阻止了任何带外流共享BLE地址。

    null
    null
    BluetoothDevice bleDevice = mbtAdapter.getRemoteDevice(peripheralStaticPublicAddress);
    connectGATT(bleDevice, context);

编辑1:我试图使用系统权限android.permission.local_mac_address,因为我的设备是根的。我可以使用BluetoothAdapter.getAddress()方法获取外围设备自己的公共地址,但是在中央设备上打开到该地址的GATT连接似乎不起作用(无论是否在外围设备上发布广告)。

共有1个答案

杜俭
2023-03-14

只有当中央支持“解析列表”(即实际上不太旧)并且设备被绑定时,您才可以使用外围设备的公共地址(它与身份解析密钥一起作为身份地址存储在绑定条目中)连接到它。远程设备必须通告。

 类似资料:
  • 但我没有找到关于如何实现这一点的信息。有人能帮我吗。以下是链接http://forum.xda-developers.com/showthread.php?t=2177133

  • 我在MongoDB中配置了一个三节点副本集;复制是同步的。 我可以单独连接到每台服务器,并使用每台服务器的专用IP地址连接到副本集,如下所示: mongo—主机rs0/10。十、 X.X:27017,10。十、 X.X:27017,10。十、 X.X:27017-u根-p abc123-authenticationDatabase管理员 但是当我尝试使用服务器的公共IP地址连接到副本集时,如下所示

  • 在iOS中,无法获取CBP外围对象的mac地址。现在,我有很多不同UUID但外设名称相同的BLE设备。用户必须首先通过注册命令注册到BLE设备,该BLE设备的MAC地址将在二维码扫描时获得。但是,我如何才能获得设备用户正在进行注册,因为在iOS中,我在外围设备中没有获得MAC地址?

  • 问题内容: 我想用BLE扫描某些设备。我只想显示我的设备,所以我知道了设备的名称,如果是好的设备,我会将其放在列表中。 我的问题是,如果我更改设备的名称,此检查将为false。因此,我看是否有可能获得一些我添加的用于执行检查的服务的不变的东西。唯一的方法是使用gatt在发现服务后执行此操作,然后再连接到该设备,但是,是否有可能在不连接设备的情况下从该设备发现某些服务? 问题答案: 我不具备andr

  • 这听起来很基本,但我是Android BLE开发的初学者。到目前为止,我能够创建我的Nexus9设备作为外围设备和Moto G作为中心设备。而且我正在成功连接设备。但我不知道当我从中央设备发送一个特性时,它将从外设接收到哪里?广告回调仅在广告启动成功而不是(在我的例子中是成功的)时才返回 这是我的外设代码 我正在从中央使用连接的Gatt的writeCharacteristic命令,但不知道如何从外

  • 设备可以连接到另一个设备的环回地址吗?环回地址可以分配给任何IP地址,例如12.12.12.12。不一定要127.0.0.1 设备支持多个环回地址。