- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Android 应用程序,用于搜索经典和低功耗蓝牙设备,这样当我按下“搜索”按钮时,它会向我显示范围内的所有蓝牙设备(低功耗和经典)。由于经典的 BT 发现和 LE 扫描是不同的事情,因此我必须单独实现它们并将它们组合在一个函数中,这样
searchFirstLowEnergyThenClassic() 或 searchFirstClassicThenLowEnergy()
为了实现这一点,我必须知道发现/扫描何时结束,以便我立即开始扫描/发现其他技术。
这是我的实现:
这看起来不错,但是当我扩展行为时出现问题。当我想要搜索时,我首先使用 LE 扫描或基于上次连接技术的经典发现进行搜索。例如,如果设备上次连接到 Classic BT 设备,则会运行 searchFirstClassicThenLowEnergy()。否则,searchFirstLowEnergyThenClassic()。
正如您可能猜到的那样,事情变得更加复杂。例如,当经典 BT 发现结束时,应用程序应该知道搜索是结束还是应该继续进行 LE 扫描。
也有这个问题。当用户在扫描/发现第一种技术期间停止搜索时,它将收到BluetoothAdapter.ACTION_DISCOVERY_FINISHED,但它不应启动LE扫描,因为搜索已被用户终止。
我使用一些标志实现了这个(尽管不能正常工作),但我的代码看起来很脏。
else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
// Classic Bluetooth discovery ended
lastOpenedType = getLastOpenedType();
if (lastOpenedType == BT_CLASSIC && !isSearchStoppedByUser()) {
// Search should continue with low energy scan
startBtLeScanning();
} else if (lastOpenedType != BT_CLASSIC && !isSearchStoppedByUser()){
// Search ended
searchProgressLayout.setVisibility(View.INVISIBLE);
} else {
// Search ended by user
searchProgressLayout.setVisibility(View.INVISIBLE);
}
}
简而言之,我想问是否有人对此有更出色、更简单的解决方案?
PS。如果可能的话,非常感谢没有广播 Intent 的解决方案。最佳答案
蓝牙适配器的 startDiscovery()方法搜索经典设备和 BLE 设备。获得扫描结果后,您可以根据设备类型将它们分开。例如:
int deviceType = device.getType();
if(deviceType == BluetoothDevice.DEVICE_TYPE_CLASSIC)
{
}
else if(deviceType == BluetoothDevice.DEVICE_TYPE_LE)
{
}
else if(deviceType == BluetoothDevice.DEVICE_TYPE_DUAL)
{
}
所以,不需要单独搜索。
关于Android 蓝牙设备按顺序扫描/发现经典和低功耗设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27169468/
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 卷积神经网络(CNN)通过从原始数据中自动学习层次特征表示,在图像识别任务中取得了巨大成功。虽然
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 血压的测量和预测是心脏病患者和有心脏问题的人的一个重要条件,应该保持持续的控制。在这项研究中,基
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 心血管疾病是最严重的死亡原因之一,每年在全世界造成严重的生命损失。持续监测血压似乎是最可行的选择
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 恩智浦MCX系列MCU的新品MCXN947 。 自 2015 年恩智浦和飞思卡尔合并成新恩智浦之后,关于它们各
我正在开发一个应用程序,该应用程序接受语音输入,并将该输入与 list 中的已知项目进行匹配。 list 中的每个项目都有一个别名列表,以便长标题的项目可以与较短的名称相匹配。 例如: class P
两个双模蓝牙设备连接时,必须使用EDR,不能并联使用LE。然后必须通过 EDR 链路传输 BT 低功耗 GATT 配置文件。这是我从规范中读到的内容。 但是 iOS EDR 堆栈(在没有 MFi 许可
我正在尝试为 S3 开发蓝牙 4.0 应用程序。问题是,手机的行为就像它甚至没有蓝牙 4.0。它不会发现 4.0 设备,并且无法通过 4.0 设备发现。我在手机设置和应用程序中都尝试过,使用 Broa
我正在寻找一种与 Adafruit bluefruit LE(nRF8001 芯片组)板进行交互的方法,在 Windows 桌面应用程序中使用 c#(据我所知,我无法使用 Windows.Device
我是一名优秀的程序员,十分优秀!