问题标签 [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.

0 投票
1 回答
1591 浏览

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 始终为空。关于为什么会这样的任何想法?

0 投票
2 回答
879 浏览

android - 阻止 BLE 设备连接到 GATT 服务器

第三方 BLE 设备尝试连接到我的 GATT 服务器,结果是他的本地应用程序无法访问该设备。我的疯狂猜测是我应该阻止该设备连接到我的 GATT 服务器,但我不知道该怎么做。有什么建议吗?谢谢

0 投票
3 回答
14882 浏览

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 芯片组。

更新

添加了新答案。我很抱歉直到现在才澄清/清理我以前的答案——时间过得真快!

0 投票
2 回答
63157 浏览

android - 如何通过蓝牙低功耗 (BLE) 链路发送数据?

我能够发现,连接到蓝牙。

源代码 - -

通过蓝牙连接到远程设备:

Gatt 回调状态:

现在我想向远程 BLE 设备发送命令,但不知道该怎么做。

一旦命令发送到 BLE 设备,BLE 设备将通过广播我的应用程序可以接收的数据来响应。

0 投票
0 回答
989 浏览

disconnect - 如何从 BLE 层获取断开连接事件 - Bluez/Linux

上一个问题如何在 Bluez/Linux 上从 GATT 服务器获取断开连接事件解决了 Bluez 堆栈的断开连接事件。

然而,由于断线检测是在 GATT 层进行的,因此在 GATT 层检测到断线需要一段时间。对于许多应用程序来说,延迟断开检测将是一个问题。

Bluez 提供 HCI API 以在 BLE 层连接/断开连接:

应用程序如何捕获指示由 hci_le_create_conn() 建立的 BLE 连接现已断开的 HCI 事件。

0 投票
0 回答
380 浏览

android - 当我调用 startLeScan() 时,蓝牙共享应用程序崩溃

我正在从事蓝牙低功耗应用。每当设备与应用程序断开连接时。我会在后台以一定的时间间隔定期扫描。(使用服务组件)有时在 Nexus 和三星设备中,我会遇到以下异常。

由于这个问题,默认的蓝牙共享应用程序开关会自动被禁用。无法打开。要恢复正常状态,我需要重新启动设备。

0 投票
1 回答
7089 浏览

bluetooth-lowenergy - 了解 BLE 中的 GATT 协议

我最近开始学习开发基于微控制器的设备,该设备将具有 BLE 模块。该设备应该将从传感器获取的模拟读数发送到我要开发的 android 应用程序。
我对 GATT 工作方式的研究是:

  1. 基于微控制器的设备将是 GATT 服务器。
  2. android 应用程序将是 GATT 客户端。
  3. 从通信的角度来看,基于微控制器的设备是从属设备,而安卓应用程序是主控设备。

问题:

  1. 如何确定需要定义的属性数量,以便从 GATT 客户端接收命令并发送响应(这将是一个浮点值)?我是否需要有两个不同的属性:一个用于 Android 发送命令,另一个用于基于微控制器的设备向 android 发送数据?或者我可以使用单个属性?
  2. GATT 似乎是一个事件驱动的系统。
    2.1:当android向基于微控制器的设备发送命令时会产生什么事件:(客户端到服务器)?
    2.2:在Android应用程序要读取的属性上写入数据时是否会产生事件:(服务器到客户端)?
  3. android 应用程序(GATT 客户端)应使用读/写命令与基于微控制器的设备(GATT 服务器)进行通信。并且,GATT Server 应该使用 Notify/Indicate 将数据传递给 GATT Client。我的理解正确吗?

我正在使用这个 BlueGiga BLE112 模块进行开发。

到目前为止,我编写的 gatt.xml 文件是:

0 投票
1 回答
212 浏览

service - LightBlue 不会忘记 UUID

此后,我为我的 pimrary 服务更改了 UUIDS,但 LightBlue 拒绝承认更改。如果我使用新手机,我注意到 UUID 确实发生了变化,但是如果我再次更改它,LightBlue 新手机现在卡在以前的 UUID 上。如果我按“显示”查看广告数据,我注意到 UUID 是正确的值!

如何让它“忘记”旧的 UUID

谢谢托马斯

0 投票
4 回答
13858 浏览

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;

0 投票
1 回答
4731 浏览

android - Android中不稳定的BLE连接

我正在遵循在 Android 4.3 中为低功耗蓝牙开发的指南。

尝试从 Android 手机连接 BLE 设备时,有时会在连接到 BLE 设备后立即断开连接。

连接代码为:

结果日志是:

断开连接的主要原因似乎是:

谁能解释为什么会这样?