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

获取BLE扫描而不过滤重复UUID

顾俊誉
2023-03-14

我正在写一个BLE应用程序,需要跟踪外设设备是否广告或已停止。

有什么建议或者是否有人做到了这一点?

共有1个答案

苏健柏
2023-03-14

听起来你对扫描广告感兴趣,而不是连接设备。这是Bluetooth Low Evergy中的“观察者”角色,与“广播员”角色相对应,后者通常称为信标。(Bluetooth Core 4.1 Vol 1 Part A Section 6.2)

通常,您启用被动扫描,查找由信标广播的ADV_IND数据包。这些可能包含也可能不包含UUID。或者,您可以通过发送SCAN_REQ来激活扫描,您可以向其接收scan_rsp。许多设备在ADV_IND和SCAN_RSP中使用不同的广告内容,以增加可以广播的信息量-例如,您可以在ADV_IND中添加一个UUID128,然后在SCAN_RSP中添加设备名称。(Bluetooth Core 4.1 Vol 2 Part E Section 7.8.10)

现在你需要html" target="_blank">定义“走开”--你希望广告停止还是消失?您将获得一个接收信号强度指示“RSSI”与每个广告(蓝牙核心4.1 Vol 2 Part E Section 7.7.65.2)-这是如何iBeacon定位工作,有很多支持的beacon接收器在Android。

或者,您等待N秒,以等待应该每T秒发送一次的广告,其中N>2T。定时方法的缺点是,可能没有收到信标与肯定收到弱信标是不一样的;当然,你需要N很大,这会影响播音器关闭或移动到范围之外和你的应用程序检测到它之间的延迟。

还有一件事--注意,如果有东西连接到外设(如果你真的在扫描外设),广告就会停止,这是监视RSSI的另一个好理由。

 类似资料:
  • 我正在使用android BLE(蓝牙低能耗)。我在使用StartEScan(UUID[]ServiceUUID,BluetoothAdapter.LeScanCallback回调)方法扫描BLE设备时遇到问题,而StartEScan(BluetoothAdapter.LeScanCallback回调)工作正常<当我使用过滤器扫描特定的ServiceUUID时,回调没有执行。我正在测试三星gala

  • 我正在创建一个Android应用程序,该应用程序使用Android Studio扫描所有附近的BLE(蓝牙低功耗)设备。 我想我已经实施了所有这些文件: https://developer.android.com/guide/topics/connectivity/bluetooth/ble-overview https://developer.android.com/guide/topics/c

  • 任何人都可以帮我解决这个问题。我接受三个输入:整数、双精度和字符串,但Scanner类不接受字符串值

  • 我试图扫描BLE设备与 (我知道它在新版本中已经过时了,但我只是想看看它是否能与我的手机配合使用[4.4],我正在使用它)。因此,它开始扫描,然后继续,没有给出错误,但没有检测到设备。也会触发OnLEScan事件,但其中的设备参数为null。我的LE设备就在那里并已连接。 在Google上,我发现如果BluetoothAdapter没有UUID,就会发生这种情况。如何设置UUID?何时调用/启动O

  • 我有3台Android设备,三星Galaxy S3手机,三星Tab4和Verizon OEM平板电脑。Verizon OEM平板电脑不支持BLE、API 17。我从android开发者网站安装了“BLE设备扫描”,并在Galaxy S3上运行。它只显示Verizon平板电脑是找到的设备。当我在三星Tab4上运行相同的应用程序时,它只显示Galaxy S3作为找到的设备。如果我只看Galaxy S3

  • 我的应用程序应连接到蓝牙LE设备。通常使用mBluetoothAdapter执行设备扫描。Stratescan(mLeScanCallback) 。回调为您提供有关可用设备的信息。 如果要连接到专用设备,请执行以下操作 然后 在我看来,连接到BLE设备的唯一需要是知道BLE地址,然后通过以上两个步骤连接到它。因此,如果我已经知道一个BLE地址(例如,它写在BLE设备的标签上),我就不需要执行BLE