问题标签 [gatt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 为什么 BluetoothManager.OpenGattServer() 在我的 Nexus 7 上总是返回 null?
我正在尝试使用 BluetoothGattServer Android APIs- http://www.jayconsystems.com/tutorial/android_ble_nrf8002/让本教程适用于我的 Nexus 7(2012)运行 cyanogenMod(因此它具有 BT LE)
但是,设置 GattServer 不起作用并且总是返回 null。
在这之后:
gattServer 始终为空。关于为什么会这样的任何想法?
android - 阻止 BLE 设备连接到 GATT 服务器
第三方 BLE 设备尝试连接到我的 GATT 服务器,结果是他的本地应用程序无法访问该设备。我的疯狂猜测是我应该阻止该设备连接到我的 GATT 服务器,但我不知道该怎么做。有什么建议吗?谢谢
ios - iOS蓝牙双模;同时将 BLE (GATT) 连接到已连接的 BR/EDR (A2DP/HFP) 立体声耳机
我正在使用经典配置文件(HFP、A2DP、AVRCP)开发一款带蓝牙的立体声耳机,正如人们所期望的那样,Ina 立体声耳机。但是,我想为 iOS 部署一个远程控制应用程序,并将其同时用于其他经典链接,但我在设计中使用的双模芯片组的行为与我预期的不同;
耳机设置为外围设备,让 iOS 设备充当中央设备。因此,外围设备宣传其 BLE 服务(使用我特定的 128 位 UUID),一切都很好。我可以从任何中心浏览外围设备,但只有在我没有连接经典配置文件时(例如,没有流式传输音频)。
我的设备在与 HFP 和/或 A2DP 连接时似乎无法宣传 BLE!但是,我看到了相同芯片组作为 BLE 中心的演示,它扫描并连接到其他 BLE 外围设备,同时通过 A2DP 流式传输音频。但是,在该设置中,该设备充当连接到 iPhone 的 A2DP 接收器,同时通过 BLE 扫描/连接到充当 BLE 外围设备的第三单元。因此,不能将经典蓝牙和智能蓝牙点对点连接到同一设备。
在支持/连接到蓝牙经典配置文件时,是否存在不能充当外围设备的双模式约束?在那种情况下只支持中央模式?
仅供参考,我使用的是 CSR 的 8670 芯片组。
更新
添加了新答案。我很抱歉直到现在才澄清/清理我以前的答案——时间过得真快!
android - 如何通过蓝牙低功耗 (BLE) 链路发送数据?
我能够发现,连接到蓝牙。
源代码 - -
通过蓝牙连接到远程设备:
Gatt 回调状态:
现在我想向远程 BLE 设备发送命令,但不知道该怎么做。
一旦命令发送到 BLE 设备,BLE 设备将通过广播我的应用程序可以接收的数据来响应。
disconnect - 如何从 BLE 层获取断开连接事件 - Bluez/Linux
上一个问题如何在 Bluez/Linux 上从 GATT 服务器获取断开连接事件解决了 Bluez 堆栈的断开连接事件。
然而,由于断线检测是在 GATT 层进行的,因此在 GATT 层检测到断线需要一段时间。对于许多应用程序来说,延迟断开检测将是一个问题。
Bluez 提供 HCI API 以在 BLE 层连接/断开连接:
应用程序如何捕获指示由 hci_le_create_conn() 建立的 BLE 连接现已断开的 HCI 事件。
android - 当我调用 startLeScan() 时,蓝牙共享应用程序崩溃
我正在从事蓝牙低功耗应用。每当设备与应用程序断开连接时。我会在后台以一定的时间间隔定期扫描。(使用服务组件)有时在 Nexus 和三星设备中,我会遇到以下异常。
由于这个问题,默认的蓝牙共享应用程序开关会自动被禁用。无法打开。要恢复正常状态,我需要重新启动设备。
bluetooth-lowenergy - 了解 BLE 中的 GATT 协议
我最近开始学习开发基于微控制器的设备,该设备将具有 BLE 模块。该设备应该将从传感器获取的模拟读数发送到我要开发的 android 应用程序。
我对 GATT 工作方式的研究是:
- 基于微控制器的设备将是 GATT 服务器。
- android 应用程序将是 GATT 客户端。
- 从通信的角度来看,基于微控制器的设备是从属设备,而安卓应用程序是主控设备。
问题:
- 如何确定需要定义的属性数量,以便从 GATT 客户端接收命令并发送响应(这将是一个浮点值)?我是否需要有两个不同的属性:一个用于 Android 发送命令,另一个用于基于微控制器的设备向 android 发送数据?或者我可以使用单个属性?
- GATT 似乎是一个事件驱动的系统。
2.1:当android向基于微控制器的设备发送命令时会产生什么事件:(客户端到服务器)?
2.2:在Android应用程序要读取的属性上写入数据时是否会产生事件:(服务器到客户端)? - android 应用程序(GATT 客户端)应使用读/写命令与基于微控制器的设备(GATT 服务器)进行通信。并且,GATT Server 应该使用 Notify/Indicate 将数据传递给 GATT Client。我的理解正确吗?
我正在使用这个 BlueGiga BLE112 模块进行开发。
到目前为止,我编写的 gatt.xml 文件是:
service - LightBlue 不会忘记 UUID
此后,我为我的 pimrary 服务更改了 UUIDS,但 LightBlue 拒绝承认更改。如果我使用新手机,我注意到 UUID 确实发生了变化,但是如果我再次更改它,LightBlue 新手机现在卡在以前的 UUID 上。如果我按“显示”查看广告数据,我注意到 UUID 是正确的值!
如何让它“忘记”旧的 UUID
谢谢托马斯
android - 如何解决 BluetoothGatt : android.os.DeadObjectException 错误发生在 Android 中?
我关注了Bluetooth Low Energy for development in Android 4.3 for Bluetooth Low Energy页面。
我已经可以打开蓝牙,扫描设备并连接到 BLE 设备。
但它显示了BluetoothGatt : android.os.DeadObjectException
在我尝试连接到设备(device.connectGatt)
之后和发现 (mBluetoothGatt.discoverServices)
BLE 设备的服务之前。
在BluetoothGatt : android.os.DeadObjectException
它显示如下日志之前
在发现服务之前连接到 BLE 设备时的完整日志如下所示
我不确定为什么会E/BluetoothGatt( 8804): android.os.DeadObjectException
这样。发生此错误后,我在运行时无法发现 BLE 设备的服务mBluetoothGatt.discoverServices
。
我必须断开并重新连接到 BLE 设备。它工作正常。
如果我在 Android 设置中清除蓝牙数据并再次连接到 BLE 设备。错误又发生了……
有时它会在连接后立即断开连接,所以我必须再次连接。
有人有同样的错误或情况吗?请帮助我或教我如何解决这个问题,它困惑了几天......
提前致谢! --------------------------------------------------编辑 - - - - - - - - - - - - - - - - - - - - - - - -
服务代码如下:
包 com.ampak.pace;
android - Android中不稳定的BLE连接
我正在遵循在 Android 4.3 中为低功耗蓝牙开发的指南。
尝试从 Android 手机连接 BLE 设备时,有时会在连接到 BLE 设备后立即断开连接。
连接代码为:
结果日志是:
断开连接的主要原因似乎是:
谁能解释为什么会这样?