问题标签 [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 回答
2856 浏览

bluetooth - 如何在 Bluez/Linux 上从 GATT 服务器获取断开连接事件

环境:Bluez 5.14、Linux 3.1、USB Plugable BLE radio、TI BLE keyfob (CC2541 dev kit) Linux Device <---hci----> USB BLE Radio

我们使用 gatttool 在 TI keyfob 上启用按键事件并开始监听事件

按下钥匙扣上的按钮并查看这些事件

因此,我们可以通过 Bluez 堆栈从 Keyfob 接收按键事件

客观的:

我们需要捕捉 GATT 断开事件,即当我们从密钥卡中取出电池时,GATT 连接迟早会断开。我们希望收到来自 Bluez 堆栈的断开连接事件。Bluez 具有此功能,因为 Android 支持基于 Bluez 构建的 GATT 断开连接事件。

问题:

我们如何使用 Bluez 命令行 hcitool/gatttool 或 Bluez API 接收 GATT 断开连接事件。

0 投票
2 回答
6959 浏览

android - Howto connect to Bluetooth LE Device on Android (Platform 19)

I am working with a BT Low Energy capable baggage alert device (Link) and have successfully paired it with my Nexus 7.

Following the docs I now would like to connect to the device using the following code:

However no connection can be initiated. After a while (a few seconds) the connection state changes to BluetoothProfile.STATE_DISCONNECTED - that is even though BluetoothProfile.STATE_CONNECTED was never reached. Am I doing something wrong here?

0 投票
0 回答
1451 浏览

android - 发现蓝牙 LE 上的服务无法在 Nexus7 平板电脑上运行

我已经在我们的 Nexus 7 平板电脑上运行了该应用程序。应用程序在屏幕上列出设备并连接到 BLE 设备。在数据读取部分出现了一些问题。

应用程序连接成功后,我们需要发现设备上的所有服务。discoverServices() 函数在我们的应用程序中不起作用。得到一些异常(android.os.DeadObjectException)。在以下部分中遇到问题

公共无效 onConnectionStateChange(BluetoothGatt gatt,int status,int newState){

0 投票
1 回答
1814 浏览

ios - BLE广告切换间隔&广告间隔

我希望能够使用一个蓝牙适配器在两个广告数据之间切换,什么是最佳的广告切换间隔以及 iOS 立即识别它的广告间隔,而不会有太多延迟?(我想在 iBeacon 和 GATT 服务广告之间切换)。现在我使用的是 1.5s 的切换间隔和 200ms 的广告间隔。我想知道200毫秒是否太多。

谢谢

0 投票
2 回答
1919 浏览

android - Android读取特性问题

我正在使用来自官方 android 开发者网站的代码,但在阅读特性方面遇到了困难

在迭代所有 uuid 时,我使用此代码在 displayGattServices 函数的 DeviceControlActivity 类中创建 gatt 特征读取调用:

readCharacteristic 函数 int BluetoothLeService calss 是:

BluetoothLeService 类中的回调也是:

我在回调处设置了一个断点,但我永远不会停在那里......可能是许可还是财产?别的东西?...有人有一个可行的例子吗?

0 投票
1 回答
1581 浏览

android - 无法读取 Gatt 特征(gatt 错误 15)

我正在尝试在 gatt 连接并成功发现服务后立即读取特征。但在 gatt 回调中收到错误 15 (0x0f, GATT_INSUFFICIENT_ENCRYPTION) 和 137 (0x0089) onCharacteristicRead。在此错误之后,gatt 立即断开连接。

我的设备是三星 S4,4.4.2。

0 投票
3 回答
5233 浏览

android - Android蓝牙LE错误:注册回调失败

我正在编写一个通过蓝牙 LE 连接到健康设备的 Android 应用程序。但是,似乎我没有正确连接到它的 GATT 服务器。每隔几秒钟,我的日志文件就会显示:

如果有人可以帮助我了解我的问题在哪里以及发生了什么,将不胜感激。我正在使用 Galaxy s4。我相信我所有的相关代码如下:

0 投票
6 回答
17115 浏览

android - 为什么 setCharacteristicNotification() 实际上不启用通知?

BluetoothLeGattAndroid BLE 示例包含以下代码:

我的问题基本上是,为什么标记代码特定于心率测量?似乎拥有客户端特征配置描述符(CCCD)特征是控制特征通知的标准方式,那么为什么不setCharacteristicNotification()考虑写入它呢?既然它不这样做,那么setCharacteristicNotification()实际上做了什么?

我对 BLE 很陌生,互联网上没有任何关于它的解释,不假设你已经理解了这一切!所以不要以为我知道什么是 CCCD 或其他什么!很难找出 CCCD 甚至代表什么!

编辑:另请参阅此答案,它支持我对 CCCD 的理解(并且让我继续想知道为什么当有一个看起来应该为您执行此操作的功能时,您必须在 Android 中手动写入它们): https://devzone .nordicsemi.com/index.php/what-does-cccd-mean

0 投票
1 回答
2574 浏览

bluetooth - 将蓝牙 LE 接近配置文件 PXP 与 Bluez (5.17) 一起使用

我想在安装了 bluez-5.17 的 Linux 机器上运行名为“Proximity Profile”或 PXP的 BLE 配置文件。

如果我理解正确的话,PXP 是三个 ble 服务的集合:

  • 链路丢失服务
  • 即时警报服务
  • 发射电源服务

到目前为止我做了什么。我按照此站点上的安装说明进行操作。安装似乎成功了。

我可以运行hciconfig hci0 uphcitool lescan

所以但现在我想运行 PXP 配置文件并让 BLE USB 加密狗充当 gatt 服务器。

该文件夹/etc/bluetooth/中有一个名为proximity.conf的文件。只有一个选项可以设置called Disable="..."。由于我想启用所有服务,我只是删除了等号后面的所有内容。

在同一个文件夹中是一个名为的文件main.conf,我将选项更改为AttributeServer = true。(不确定这是否真的有必要,因为在下面的文字中我写道这仅对测试有用)

我在/var/lib/bluetooth/xx:xx:xx:xx:xx:xx/“配置文件”文件中添加了服务的 uuid。对于00001803-0000-1000-8000-00805f9b34fbLinkLoss。

所以我重新启动了蓝牙服务并希望它能够工作。

另一方面,我有两个 android 应用程序作为 Proximity Reporter(gatt 客户端)。第一个应用来自 TI.com 示例代码。它扫描并调整所有 gatt 属性。我用它来检查服务是否正在运行。我还找到了一个名为 nRF Toolbox for BLE 的应用程序。

长话短说,它不起作用,我什至不知道如何运行这个 PXP 服务。我只是在尝试。感谢您的帮助!

0 投票
1 回答
841 浏览

c - bluez 中 GATT 服务的回调方法是什么样的?

使用 BlueZ 添加 GATT 服务时(使用 'gatt_service_add()'),您可以为 ATTRIB_READ、ATTRIB_WRITE 等指定各种回调方法。有一个“读取”已经给出的特征的示例:

对于其他功能(例如:写入),这些方法看起来如何?