gpt4 book ai didi

android - 获取 Android 范围内的 LE 设备列表

转载 作者:行者123 更新时间:2023-11-30 02:18:16 25 4
gpt4 key购买 nike

我需要的是获取范围内每个设备的列表,以便我可以一个接一个地对它们调用特定方法。

到目前为止,我尝试的是使用 BluetoothAdapter 的 startDiscovery() 方法,虽然它会返回一个设备列表,但它需要大约 12 秒才能完成,这对我的任务来说太长了。

我还设法每 2-3 秒成功使用 LeScanCallback,并且我确实发现了设备,但在每次扫描时它一次只返回一个设备。我正在尝试搜索 Beacon,因此这种类型的方法可以在找到时返回使用 BlutoothLE 的单个其他设备的每次调用,而根本不返回我的 Beacon 的信息。

那么,有没有一种方法可以发现范围内所有设备的列表,而无需等待 startDiscovery() 在 12 秒后完成?

最佳答案

几点:

  1. startDiscovery 适用于蓝牙经典设备,不适用于蓝牙 LE。

  2. Android 不包含任何特定于解析信标的 API,仅用于处理原始蓝牙 LE 设备。

您可以使用免费开源 Android Beacon Library用于检测和解析信标的附加组件。它没有 12 秒的延迟,并包装了 LeScanCallback 方法并组合了结果,因此您可以每秒获得回调,例如:

    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon : beacons) {
Log.i(TAG, "I see a beacon:"+beacon+" that is "+beacon.getDistance()+" meters away.");
}
}

关于android - 获取 Android 范围内的 LE 设备列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941370/

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