问题标签 [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 投票
4 回答
63809 浏览

linux - 低功耗蓝牙:在 linux 中监听通知/指示

我正在尝试通过 Linux 机器与 BLE 模块通信(该模块正在运行心率配置文件)。到目前为止,除了收听通知和指示(例如收听心率测量通知)之外,我已经能够做所有我需要的事情。我正在使用内核版本 3.5 和 bluez-5.3。

到目前为止使用的成功命令:

失败的命令:

任何帮助是极大的赞赏。

0 投票
2 回答
2695 浏览

bluetooth-lowenergy - 用于打开/关闭 LED 的 BLE 设备(服务器)的 GATT 配置文件

不确定是否将其发布在 SO 上。

我正在寻找非常简单的 BLE 设备。它有一个可以打开或关闭的两个 LED(为了简化)。

在浏览GATT配置文件时,我找不到应该使用哪个配置文件。他们中的大多数人(根据要求)向客户发送回一些东西(如温度)。

我需要相反的东西:打开/关闭 BLE 设备(服务器)。在我的例子中,客户端(iPhone)会发送一个命令来打开/关闭 LED-1 或​​ LED -2。

我应该使用什么服务配置文件?

谢谢。

我正在使用 nRF8001 开发套件和 nRF Studio 来制作 services.h

0 投票
10 回答
85722 浏览

android - Android BLE API:未收到 GATT 通知

用于测试的设备:Nexus 4、Android 4.3

连接工作正常,但onCharacteristicChanged我的回调方法从未被调用。但是,我正在使用setCharacteristicNotification(char, true)inside注册通知onServicesDiscovered,该函数甚至返回 true。

设备日志(当通知应该出现/通过蓝牙设备发送时实际上根本没有消息):

GATT 通知在 iOS 上运行良好,该应用程序与 Android 上的基本相同(注册通知等)。

有没有其他人经历过这个可能的解决方案?

0 投票
2 回答
12526 浏览

android - 原生 Android BLE 实现本质上是同步的吗?

我记得在三星 BLE API(存档页面)的“指南和提示” -doc 中阅读:

三星 F/W 和堆栈最重要的概念之一是其同步特性。也就是说,例如,如果我们针对 writeCharacteristic特定特征调用,如果它返回 true,则对任何BluetoothGattBluetoothGattServer方法的下一次调用应该在onCharacteristicRead接收到回调之后完成。这是因为堆栈被设计为一次只支持和处理一个 GATT 调用,例如,如果您 在第一个调用之后不久调用writeCharacteristic或处理任何特征,则它会被忽略。readCharacteristic

  1. 这是否也适用于 Android 4.3 中引入的 BLE 的本机实现?
  2. 三星 API 一次也只支持一个连接的 GATT 设备。这在本机 API 中是否发生了变化?
0 投票
11 回答
30229 浏览

android - startLeScan with 128 bit UUIDs doesn't work on native Android BLE implementation

I am having trouble using startLeScan( new UUID[]{ MY_DESIRED_128_BIT_SERVICE_UUID }, callback ) on the new introduced BLE API of Android 4.3 on my Nexus 4.

The callback just doesn't get called. I still can see incoming packages in the log:

If I don't use the parameter to filter for UUIDs it works. We are using a manufacturer specific 128bit UUID for device of our company.

Now, our device offers more services than I am providing in the array. But that shouldn't be the problem.

Is anyone facing the same problem? Any solutions?

Edit

There are several problems related to scanning, this question only discusses one: If you also have some issue with scanning, read this comment first. Also keep in mind, that my device imposes a 16bit and a 128bit UUID. Most of you guys use 16bit UUIDs provided by the BLE standard like Heart rate or Speed and Cadence.

0 投票
3 回答
51859 浏览

android - Android 蓝牙低功耗配对

如何将蓝牙低功耗 (BLE)设备与 Android 配对以读取加密数据。

使用Android BLE 页面中的信息,我能够发现设备、连接到它、发现服务并读取未加密的特征。

当我尝试读取加密特征(会导致 iOS 显示要求配对然后完成读取的弹出窗口)时,我收到错误代码 5,对应于Insufficient Authentication

我不确定如何使设备配对或如何提供身份验证信息以完成读取

我通过尝试添加描述符来玩弄 BluetoothGattCharacteristics,但这也不起作用。
任何帮助表示赞赏!

0 投票
1 回答
1146 浏览

ios - 通过 EDR 在两个双模设备之间传输 BT Low Energy GATT 配置文件

两台双模蓝牙设备连接时,必须使用EDR,不能并联使用LE。然后必须通过 EDR 链路传输 BT 低能耗 GATT 配置文件。这是我从规范中读到的。

但是 iOS EDR 堆栈(没有 MFi 许可证有严格的限制)是否也接受低能耗 GATT 配置文件?

谢谢!

0 投票
0 回答
2697 浏览

bluetooth-lowenergy - android API 18 ble writeCharacteristic不起作用

我正在使用 android 4.3 的新 ble api。我能够从我的 LE 设备扫描、连接、发现特征等。

在读取特征值的情况下,对于某些特征,我得到响应,而对于另一些特征,我没有得到响应。//猜测是设备故障

问题在于写操作。该器件具有 2 个具有写入特性的特性。当我尝试编写它们时,随机发生了 2 个案例-

  1. 未调用onWriteCharacteristic且未将值更改为设备。
  2. 尽管 WriteType 设置为 WRITE_TYPE_NO_RESPONSE ,但仍以成功状态调用onWriteCharacteristic 但值仍然没有变化。

一些非 4.3 应用程序正在成功更改特征值。所以我猜这不是设备故障。

任何见解或帮助将不胜感激。

编辑 1: 当我尝试将特征写入设备时,这是日志片段。

WriteType 设置为 WRITE_TYPE_NO_RESPONSE,但我仍然收到 onWriteCharacteristic 调用,但该值并未更改为设备。

有人可以帮忙吗?

编辑 2: 我正在使用 nexus-4 测试应用程序,但这款手机仍然存在同样的问题,但是,嘿,代码在三星 S4 上运行良好,它能够在 LE 设备上写入特征值。那是Nexus-4的问题吗?但是 这里的这个人说他可以用 Nexus-4 写作

0 投票
4 回答
5266 浏览

android - Android BLE 4.3 onDescriptorWrite 在启用特征通知时返回状态 128

关于使用新的 android BLE 4.3 启用特性的问题:

尽管我使用队列异步启用了有关特性的通知,但我没有从 BLE 设备收到任何通知。

我还使用 ENABLE_NOTIFICATION_VALUE 编写了 UUID“00002902-0000-1000-8000-00805f9b34fb”的描述符。

我遵循了 Google sdk doc 的建议以及各种论坛的建议。

顺便说一句,我在“onDescriptorWrite”上得到状态 = 128。知道这种状态意味着什么吗?

我通过谷歌代码并没有看到任何关于此的信息。甚至源代码也没有说明如何设置此状态。

让我知道你们中的任何人在为身体媒体设备启用通知时是否遇到过这种情况。有时我会在描述符写入时获得状态 133。我使用最新的 Nexus 7 进行测试。

0 投票
0 回答
1607 浏览

java - 适用于 Java SE 的蓝牙 LE

我正在寻找一个支持蓝牙 LE 连接的 Java 库,特别是 GATT,如果我幸运的话,还有 Apple 的新 iBeacon 协议。它需要能够广播自己,并且如果可能的话能够发起连接。

我见过 BlueCove,甚至尝试过扩展它以支持蓝牙 LE,但无法让它工作。有没有人知道任何支持 Java SE 的蓝牙库,不适用于 Android 或 Java ME,因为这似乎是我能找到的全部。

有任何想法吗?