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

bluetooth - 属性需要在读/写之前进行身份验证

我正在使用带有 bluez 版本 4.101 的 Linux 计算机。我正在与处于从属模式的 BLE 设备通信。我正在尝试从 BLE 设备读取数据。但是当我这样做时,读取失败并出现以下错误:“属性需要在读/写之前进行身份验证”。我可以从许多其他特征中读取数据,但我在这一点上失败了。我正在使用的命令是

-gatttool -b 11:22:33:44:55:66 --char-read

我需要做什么才能读取这些数据?

注意:我可以从我的 iPhone 上读取这些数据。但我需要配对,所以也许这是一个配对问题。

0 投票
1 回答
2234 浏览

java - 如何提高 Android 蓝牙低功耗 GATT 吞吐量?

使用 Android BLE API 进行多次 GATT 连续读取时,我遇到了性能问题。

我可以在大约 5 或 6 秒内每秒读取大约 10 个数据包。在我读取 ~65 的数据包后,吞吐量降低到每 1.5 秒大约 1 个数据包。

我做了几次测试,内部 BLE 似乎变得非常慢。在这种情况下,从 Java GATT 读取调用到外围设备大约需要 750 毫秒(外围设备中没有瓶颈),而返回 Java API 回调大约需要 750 毫秒。

在我看来,BLE 堆栈实现很差,因为当我从设备断开连接(可能清理了一些资源)然后重新连接时,我可以重现同样的问题:前 5 个或 6 个数据包读取大约 10 个数据包/秒秒(约 65 个数据包读取),然后它变得很慢。

我用 Galaxy S4 和 Nexus 4 设备对其进行了测试。两者都一样。

关于如何改进它的任何建议?

0 投票
1 回答
2913 浏览

c# - 低功耗蓝牙连接参数更新 - 导致 HRESULT: 0x80070005 (E_ACCESSDENIED) 的设备或窗口?

我正在尝试写入 GAP 服务 (0x180) 特征和 0x2A04

每当我尝试写入 0x2A04(连接参数)或 0x0200(设备名称)时,

并调用 WriteValueAsync(),程序在该行中断,我的异常是

mscorlib.dll 中出现“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理

附加信息:访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

我不太确定参数被拒绝的堆栈级别 - 我什至不知道参数是否到达 BLE 设备。但是,由于我可以写入其他 GATT 服务并从 GAP 特征中读取,我相信它是设备。

任何人都可以看到一个万无一失的方法来发现这个问题来自哪里?

谢谢托马斯

0 投票
2 回答
590 浏览

android - 从 BluetoothGatt 读取字节

有谁知道如何打印/读取/获取存储在 BluetoothGattCharacteristic 中的字节值?我正在从 BT 传感器接收数据,需要弄清楚正确的读取格式应该是什么:例如。SINT8,UINT8,浮点数。

我希望一旦我得到那个字节值,这将引导我进入将该值转换为可用测量单位所需的等式。

谢谢

0 投票
0 回答
190 浏览

android - 从光传感器解释 BluetoothGatt 值

我正在编写一个应用程序,它从 BLE 设备的光传感器接收值。我正在尝试确定我收到的是什么。我正在尝试获取传感器提供的 Lux 值,但我担心它需要转换。我不知道这个传感器的测量单位是什么。例如,Android 手机的单位是 SI Lux。应该很容易,但对于这个传感器,规格没有说明。

这是给我输出的代码:

很简单,只需读取传感器并在读取时给我该传感器的各种输出。接下来是输出:

我正在解释这是 RawValues 1 & 2 的测量值,但正在记录存储的内容以提供帮助。问题是 StoredValue 是 [B@431d30b0 这超出了我的范围。根据制造商的说明,第一个字节是地址 00x03 的 HILUX,第二个字节是地址 00x04 的 LOLUX,默认值为 00:00。

我在这里看什么,我哪里出错了?我受伤的地方是我对所读内容的理解。似乎无法获得良好的搜索上下文来了解它。

谢谢

0 投票
1 回答
1523 浏览

bluetooth-lowenergy - 在蓝牙 LE 中,GATT 服务器和 GATT 客户端都在建立连接之前做广告?

我是蓝牙 LE 的新手,正在使用 CSR 的设备,

  1. 计划是创建一个 GATT 客户端和 GATT 服务器。
  2. GATT 服务器可以使用通知向 GATT 客户端发送数据。
  3. 但是在这里,我们希望服务器和客户端都是基于微控制器的 BT LE 设备。

此外,还有一个疑问是当 GATT 服务器有数据时,程序员是否有责任创建和发送通知,或者是否有某种方式可以在更新属性时自动发送通知。

请提供是否有任何可用的示例代码。

0 投票
0 回答
323 浏览

android - 蓝牙低功耗推送模式

随着 Android L 的发布,我正在制作一个在两种模式下都使用 BLE 的应用程序。一些手机将处于外围模式(即 GATT 服务器),其他手机将处于中央模式(即 GATT 客户端)。每个电话如何确定是客户端还是服务器是无关紧要的。

我遇到的问题是,在某一时刻,GATT 服务器必须开始向 GATT 客户端推送信息,然后让 GATT 客户端做出响应。虽然我查看了规范并说通信是双向的,但我不确定这是否是受支持的通信模式。显而易见的选择是颠倒哪个角色扮演服务器和客户端,但不幸的是,应用程序的要求阻止我这样做(因为使用 GATT 客户端模式的角色需要同时保持与多个设备的连接)。

是否有明确定义的方式让 GATT 服务器将数据“推送”到 GATT 客户端?或者,是否有更好的选择(可能使用某种标志来建立传统的蓝牙连接)?

0 投票
1 回答
31077 浏览

android - Android,如何使 BLE 设备成为配对设备(绑定)

在 GATT 之前,createRfcommSocketToServiceRecord,createInsecureRfcommSocketToServiceRecord

方法可以使配对设备,

但是 GATT 没有关于配对设备的选项,只能使用 BluetoothDevice.connectGatt(...)

如果它已经连接,我想制作一个配对设备。

谢谢。

0 投票
2 回答
4442 浏览

android - 在 GATT Android 中获取 BLE 特性的值

我正在尝试使用以下代码读取特征并获取其值

我的应用程序崩溃并给出错误“应用程序可能在其主线程上做的工作过多。”

我也试过

但错误是一样的

我已经调试了我的代码以检查它是否获得了价值

它显示正确的值,但将代码作为 Android 应用程序运行。我犯了同样的错误。

0 投票
1 回答
1497 浏览

android - 空指针异常错误发送一个特征 BLE android

我是一名新的 android 开发人员,我正在尝试使用BLE 4.3基于 Gatt android 示例项目的数据发送数据。

我使用特性来放置我想要传输的数据。

当我尝试传输时,我使用DeviceControlActivity项目列表中的第三个服务,出现一个文本对话框来介绍文本。当我按 OK 时,想法是开始传输,但我得到一个NullPointerException错误。

我不知道为什么会出现这个错误,我该如何解决这个问题。

这是我的完整代码,如果有用的话

}

有人能告诉我我做错了什么吗?

感谢提前