- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试通过蓝牙低功耗 GATT 模式将 android 连接到 linux。
Bluez 中有一个示例代码:btgatt-server.c ,我用它作为服务器。
Android 端为 Android official example:Connecting to a GATT Server .也就是说,使用函数 BluetoothDevice::connectGatt(Context context, boolean autoConnect, BluetoothGattCallback callback)。
运行后,Android部分返回连接成功,(BluetoothGattCallback::onConnectionStateChange的参数为STATE_CONNECTED),但linux(btgatt-server)中的程序没有得到任何响应,仍然阻塞在等待接受。(第 485 行)。
我还使用了另一个示例代码:l2cap-ble.c ,结果完全一样。
谁能帮帮我?我的目标是:连接后,linux gatt 服务器会向 Android 发送数据。然后断开连接。
非常感谢。
最佳答案
我刚刚遇到了同样的问题。
这似乎是 Android 和 Broadcom 蓝牙模块发生的错误。 Android 以某种方式连接到错误的 l2cap channel 。
解决方法是在广告中明确禁用 BR/EDR 支持。
google 上的错误报告和#8 中的解决方案可以找到here ,对帮助我的提示的引用:
I have obtained information from Broadcom regarding this bug and I don't think its a bug on their part. If one does not specifically set the 'BR/EDR not supported' bit in the advertisement (bit 2), the Broadcom stack will use BR/EDR and BTLE. Changing the leading advertisement package from 020102 to 020106 solved the problem.
使用 bluez btmgmt 在设备 hci0 上配置广告,我发出以下命令:
btmgmt -i hci0 power off
btmgmt -i hci0 le on
btmgmt -i hci0 connectable on
btmgmt -i hci0 bredr off # Disables BR/EDR !
btmgmt -i hci0 advertising on
btmgmt -i hci0 power on
启动 bluez btgatt-server 示例:
btgatt-server -i hci0 -s low -t public -r -v
关于linux - 低功耗蓝牙 : Android Gatt-Client connect to Linux Gatt Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552644/
具体的软硬件实现点击 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
我是一名优秀的程序员,十分优秀!