我正在为配置信标的项目工作。在开机后一定时间后,信标会变得不可配置,直到重新上电为止。为了显示可配置的信标列表,我查看了某些特征(蓝牙设备名称、广告数据中的某些制造商数据)。 我还需要知道它是否“可连接”,即BLE广告数据包中的PDU类型是否表明它是可连接的。我已经在Android 4.X和5.X中高低搜索了Android Bluetooth类,但没有找到任何可以提供此信息的东西。
我意识到确定信标可连接性的一种方法是连接到它,例如:device.connectGatt(...)。然而,有时需要超过两分钟才能通过onConnectionStateChange回调返回STATE_DISCONNECTED。此外,在环境中可能有许多这些信标,连接到每个可能可配置的信标将效率低下。
在iOS中,可以在CBAdvertisementDataIsConnectable键下的advertisementData字典中找到此属性的等效项。在CBCentralManagerDelegate回调方法centralManager:didDiscoverPeripheral:advertisementData:RSSI中。
因此,问题是:在Android上是否有一种方法可以从广告数据或扫描结果等中确定BLE设备是否“可连接”?
我意识到确定信标可连接性的一种方法是连接到它,例如:device.connectGatt(...)。然而,有时需要超过两分钟才能通过onConnectionStateChange回调返回STATE_DISCONNECTED。此外,在环境中可能有许多这些信标,连接到每个可能可配置的信标将效率低下。
在iOS中,可以在CBAdvertisementDataIsConnectable键下的advertisementData字典中找到此属性的等效项。在CBCentralManagerDelegate回调方法centralManager:didDiscoverPeripheral:advertisementData:RSSI中。
因此,问题是:在Android上是否有一种方法可以从广告数据或扫描结果等中确定BLE设备是否“可连接”?