- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序在连接到某些设备上的 BluetoothGatt 时出现问题。
所有 BLE 相关代码都驻留在 android Service
中,除 Huawei CAM-L03 外一切正常。据报道,一些旧的三星 Galaxy 设备也存在问题。
我最近发现,在某些设备上,所有 BLE 通信都必须在 UI 线程上执行。我写了一个快速测试应用程序,当一切都在 UI 线程上运行时,华为问题就消失了。
我尝试在 Service
中使用主循环器创建一个 Handler
:
final Context context = getApplicationContext();
Handler handler = new Handler(context.getMainLooper());
handler.post(new Runnable(){
@Override
public void run() {
BluetoothGatt gatt = device.connectGatt(context, false, callBackHandler);
…
}
});
但这仍然在连接回调中给出 GATT_ERROR 133,我有点怀疑,因为上下文是服务,而不是 UI 应用程序。
我在这里只看到两个选项:
我对其中任何一个都不满意。还有其他我不知道的选择吗?
最佳答案
我想出了问题到底是什么以及如何解决它。我将我的答案添加为对连接尝试时抛出的通用 gatt 错误 (133) 的另一项检查,因为我没有找到对同一问题的暗示。
像 this 这样的回答让我得出了错误的结论.我认为该错误已在 Android 上长期修复。我收到连接失败回调的事实表明线程问题无关紧要,因为回调已注册。
我遇到的问题与我在尝试连接到 BLE 设备时保持蓝牙适配器扫描有关。似乎有些手机有这个问题。
我的应用程序要求持续扫描服务运行的时间,我周围的所有测试电话都没有问题。华为的这个型号,会拒绝连接。
TL;DR 在尝试连接之前停止扫描,在断开连接后根据需要重新开始扫描。
关于Android BluetoothDevice connectGatt 在某些设备上总是失败并出现错误 133,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420559/
我刚开始使用 Android,并使用低功耗蓝牙在 Android Studio 中设置了一个 API 21 项目。 深入研究 BluetoothDevice 向我展示了 ConnectGatt() 方
我的应用程序在连接到某些设备上的 BluetoothGatt 时出现问题。 所有 BLE 相关代码都驻留在 android Service 中,除 Huawei CAM-L03 外一切正常。据报道,一
有人可以检查这段代码的问题吗?我已经实现了一项服务并将 BluetoothDevice 对象传递给它(BluetoothDevice 对象通过 intent 传递没有错误/问题)。然后,在 onSta
我的目标是在低功耗蓝牙设备和手机之间建立自动连接。我按照示例代码进行操作,找到了这一行 // We want to directly connect to the device, so we are
我是一名优秀的程序员,十分优秀!