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

android - 获取给定 UUID 的 BluetoothGattCharacteristic

我想知道如果我有 UUID 并且已成功连接到 BLE 设备,那么检索 BluetoothGattCharacteristic 的最佳方法是什么?例如,见下文。TIA。

0 投票
1 回答
632 浏览

android - How to Read BLE GATT characterstics in chunks form GATT server using RxAndroidBLE

I am using RxAndroidBle library for handling BLE connection and reading/writing to GATT server from my android gatt client app. I have followed the sample application provided on github.

The problem I am facing is my GATT server is running on Intel Edison and it is supporting MTU size of 80 only .It sends data in chunks, I am supposed to read the charcterstics value multiple time until i encounter a special character, something like '/END' . I have tried Custom read operation example which is supposed to read 5 times every 250 ms.

and i am calling it like this

and i am not getting any data from the server using this code. However if i try simple read operation like this

I get the first chunk of data, but i need to read rest of data.
I am not very well versed with RxJava. So there might be an easy way to do this, But any suggestion or help will good.

This is my prepareConnectionObservable

I call

and onConnectionReceived i call CustomRead.

0 投票
1 回答
743 浏览

bluetooth-lowenergy - 如何在 GATT 错误的情况下重试 RxAndroidBLE 发现服务。

我正在使用 RxAndroidBLE 库来发现我的 GATT 服务器中的服务。它大部分时间都可以正常工作,但我经常收到 GATT 错误 133 (0x85) 并且它失败了。我想在一段时间内重试几次发现服务,比如 5 秒。这是我正在尝试的代码

它不起作用,看起来 retryWhen 没有被调用。它可能更多是 rxJava 问题,但我将非常感谢您对此的任何帮助。

0 投票
3 回答
1552 浏览

android - BLE writeCharacteristic 问题

我正在尝试writeCharacteristic()使用 BLE 设备。

我使用谷歌示例应用程序建立连接,连接很好。我可以看到 BLE 服务和服务特征。

writeCharacteristic()方法返回 true 并且onCharacteristicWrite()回调返回状态BluetoothGatt.GATT_SUCCESS,但设备没有发生任何事情:我尝试了堆栈溢出中的所有解决方案,但没有任何帮助。这是我的代码:

BluetoothLeService类中,我有sendData()方法,byte[] 由于最大有效负载为 33 个字节,因此我将分别发送每个命令。

0 投票
1 回答
645 浏览

android - Android BLE 连接到 GATT 服务的时间比预期的要长

我是 android BLE 开发和一般 BLE 开发的新手,我注意到大多数情况下,Android 可能需要 3-7 秒才能在我的 connectGatt 调用之后触发对 onConnectionStateChange 的调用。这是正常的吗?我很好奇,因为我之前使用过蓝牙 2.0,那里的一切都快得多。此外,我在 iPhone 上进行了一些测试编码,初始连接的建立也更快。我将在下面发布一个示例代码以及一些指示减速发生的位置的 android 监视器消息。

这里有几行来自我的日志,你可以看到这里花了将近 5 秒来确认我们已连接到 GATT。

0 投票
1 回答
2021 浏览

bluetooth-lowenergy - 如何让ble android应用程序在后台运行?

我正在开发安卓应用程序。在这个应用程序中,我必须连接到 ble 设备。当应用程序处于后台时,我希望应用程序连接到 ble 设备。

0 投票
2 回答
1957 浏览

android - BluetoothGattServerCallback : onCharacteristicReadRequest() 多次调用

我有一部 Android 手机充当中央设备,另一部 Android 手机充当外围设备。

从 Central,我请求读取 Peripheral 的特征,使用mBluetoothGatt.readCharacteristic ( characteristic )

在外围设备上,方法

调用,我正在做两件事: 1. 初始化 abyte [] value以将字符串存储在byte表单中。2. 使用方法向客户端发送响应mGattServer.sendResponse()

我的问题是,当我从中央设备发出一次读取请求时,上述方法会被多次调用。

因此,我在中央设备上获取数据就像

This is a data to be transferredThis is a data to be transferredThis is a...

我也尝试过其他特性。但是对于那些,回调方法被调用一次。

你能指出我哪里做错了吗?

编辑:从外围设备,我已经调试我正在发送 32 字节的数据。当我将string值从更改This is a data to be transferred为 时DATA,该方法onCharacteristicReadRequest()仅调用一次。

对该领域的进一步实验string使我得出结论,响应中要发送的最大字节数为 21 字节。如果是这种情况,那么我应该如何从 GATT Server 发送响应,以便 Central Device 只能获取准确的数据?

0 投票
1 回答
637 浏览

android - Android 蓝牙低功耗 Gatt 服务实现错误

我在我的项目中使用了 android.bluetooth 包,但我尝试实现 IBluetoothGatt 的读写特性。但我有一些问题如下

IBluetoothGatt 界面中的 writeCharacteristic 红色高亮

0 投票
1 回答
43 浏览

bluetooth-lowenergy - 奇怪的 BLE 行为 Android


我正在尝试开发一个应用程序,通过 BLE 连接到我来自德克萨斯州的 CC2650 传感器标签。
我可以使用 GATT 协议连接到我的标签,问题是如果我连接时连接失败,它不会恢复。但是,如果我将手机重新连接到设备并重复该过程(关闭并打开标签),它会自动重新连接到手机。
我只是不明白第一个行为和重新连接后的行为之间的区别......
知道吗?
亚历克斯

0 投票
1 回答
1368 浏览

bluetooth - 蓝牙外观图标

我正在为 BLE 设备开发固件,需要定义外观值。目前,我选择了“通用计算机”。但是,外观值的完整列表https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml 有一些可能更合适的值。在 Windows 10 中,“通用计算机”显示为带有桌面 PC 的图标。是否有可用资源允许我查看任何/所有支持的外观值的图标?我想避免多个编译、加载和浏览周期只是为了观察图标。