问题标签 [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.
android - 我想知道 onClientConnParamsChanged() 何时何地出现在日志中
我开发了一个使用 ble 的应用程序。我使用 Eclipse 作为开发工具。
我的“使用 ble 的应用程序”安装在我的智能手机上。我将智能手机和电脑连接到 USB。然后在我的智能手机上,我启动了我开发的“使用 ble 的应用程序”。
我在 Eclipse 的 Logcat 中找到了以下日志。
D/BluetoothGatt(25463): onClientConnParamsChanged() - 设备=98:7B:F3:52:48:11 间隔=39 状态=0
D/BluetoothGatt(25463): onClientConnParamsChanged() - 设备=98:7B:F3:52:48:11 间隔=16 状态=0
我可以从我找到的日志中想到它。此日志由我的应用程序显示。并且执行了 BluetoothGatt.class 的 onClientConnParamsChanged() 方法。
但我在 BluetoothGatt.class 中找不到 onClientConnParamsChanged()。我想知道 onClientConnParamsChanged() 何时何地出现在日志中。
android - 我想知道为什么在 discoverServices() 和 onGetService() 之间需要时间。
我开发了一个使用 ble 的应用程序。我使用 Eclipse 作为开发工具。
我的“使用 ble 的应用程序”安装在我的智能手机上。我将智能手机和电脑连接到 USB。然后在我的智能手机上,我启动了我开发的“使用 ble 的应用程序”。
我在 Eclipse 的 Logcat 中找到了以下日志。
在上面的日志中,
这大约需要 3~4 秒。
我想知道为什么这部分大约需要 3~4 秒。
android - 在 Android 中读取绑定到蓝牙 LE 描述符的数据结构值
我正在编写一个 android 应用程序,它通过 BLE(具有特征和描述符)读取从 arm 处理器发送的数据。在硬件部分,我使用以下功能:
如果我们descValue
作为字符串或众所周知的类型值传递,我们可以轻松地在 android 端提取值,如下所示:
或者对于浮动我使用:
但是,我想在 C 中发送一个结构,而不是字符串或任何单一数据类型(例如特征表示格式(0x2904 UUID):
但问题是当我们调用getValue()
在 Android 中调用函数时,它返回一个字节数组,我不知道如何解释这个字节数组并从中提取数据
我正在寻找一种发送方式struct
而不是严格寻找 Char Pres。形式。(这是可能的,因为 nRF 连接应用程序可以读取数据结构但源代码不可用(即使在他们的 nRF 工具箱中)
任何帮助,将不胜感激
android - 未通知多个 BluetoothGattCharacteristic
我正在使用 BLE 设备,但无法onCharacteristicChanged
被调用。我有 8BluetoothGattCharacteristic
个需要订阅。
找到设备后,onServicesDiscovered
我开始订阅每个特征的过程。
然后在subscribeToCharacteristic
我做所有检查描述符。
然后我接到每个特征的电话,onDescriptorWrite
并检查我是否需要订阅另一个特征。
所有这些工作,但我从来没有接到任何电话onCharacteristicChanged
。另外,如果我 gatt.readCharacteristic(char)
在订阅之前调用,onDescriptorWrite
将不会被调用。我再次需要订阅 8 个特征。请帮忙!
bluetooth-lowenergy - LELink、Automatic、Carista 等 OBD BLE 适配器使用哪些 GATT 配置文件和服务?
我正在探索为支持 BLE(蓝牙低功耗)的汽车 OBD2 适配器构建应用程序(Android 和 iOS)。为了使应用程序能够与来自不同供应商的此类适配器一起使用,我认为会有一组标准的 GATT 配置文件,即这些适配器将用于标准功能(如引擎 RPM、燃料水平等)的服务和特性。是在构建移动应用程序时,我可以在某个地方获得此信息吗?
android - 如何将蓝牙自动连接添加到当前代码
我目前正在构建一个控制继电器的应用程序。该继电器使用 arduino pro 和继电器控制我家的灯,并通过电话 va a HC-05 连接。到目前为止,我已经能够使用这个当前代码来控制灯(在一切正常的情况下,打开和关闭灯)。但是,我正在尝试在 java 代码中实现“自动连接”,以便应用程序...一旦在 HC-05 范围内...它将自动连接到我的手机并且灯会亮起。每次我尝试添加任何类型的自动连接代码或 Gitt 时,似乎都无法正常工作。另外,当我阅读开发人员说明时,我很难理解要添加什么。有人可以帮我添加正确的代码并解释正在发生的事情,以便我可以学习并“尝试”了解您所做的事情。谢谢你。
这是我当前的Java:
}
和我当前的 XML
android - 连接到 AND UA651BLE 时出现状态为 133 的 Type_Gatt_Error
我正在尝试连接到 AnD UA-651BLE 血压计并在安卓应用程序中获取值。该应用程序能够找到该设备,但我在“onConnectionStateChange”中收到 Type_Gatt_Error。
这适用于某些设备,如三星 Galaxy S5、Moto G4 等,但不适用于某些手机,如 Redmi 3s Prime 等。
这很好用,当我取消配对设备并每次重新配对时,我都可以读取数据。我无法理解任何东西,因为我是 android-ble 集成的新手。我尝试将目标 SDK 版本更改为 21 和 23,因为我主要使用 android 5.0.1 及更高版本的设备。但没有运气
我发现门户网站中的许多人提出了类似的问题,但没有找到任何适合我的解决方案。
谁能让我理解为什么会发生这种情况以及可能的解决方案是什么?
以下是我在 Android Studio 中获得的日志:
android - 如何从android中的BLE设备获取实际值?
在获得血压服务的所有特征(uuid:00002a35-0000-1000-8000-00805f9b34fb)后,我无法获得值(收缩压、舒张压和脉搏) ,而且我也没有得到点关于所有这些特征和描述符。所以请任何人帮助我解决BLE设备中的这个问题。
android - 电池电量状态 (0x2A1B) 蓝牙规范是什么意思?
电池电量状态 (0x2A1B)未在蓝牙文档的电池服务规范下列出,只有电池电量 (0x2A19) 列出。但是,在 Battery Service 下读取特征Battery Level State (0x2A1B)时,会找到并false
返回 0x2A1B 特征,而不是错误或null
.
找到这个例子,true
读取电池电量(0x2A19,org.bluetooth.characteristic.battery_level)时返回where,它被列为电池电量状态(0x2A1B)描述中的值字段之一。
根据规格,电池电量状态“包括”电池电量:
编辑:使用 Nordic Connect Android 应用程序读取电池电量状态 (0x2A1B)时,这是值:Invalid data syntax: (0x) 64, "d"
。
问题:
- 电池电量状态 (0x2A1B)属于什么蓝牙服务?是成功返回的Battery Service吗?
false
其他StackOverflow 问题询问Battery Power State (0x2A1A),它也列在Battery Level State下。这是如何运作的? - 从读取特征返回的
false
and表示什么?true
-
背景: 我正在尝试通过 Android 应用程序从 nRF51822 模块(基于Adafruit Bluefruit 32u4 LE)读取电池电量。
发现的服务和特性包括电池服务 (0x180F)和电池电量状态特性 (0x2A1B)。还尝试根据Adafruit 教程添加自定义特征以读取电池电量,但 Android 应用找不到新添加的特征。但是,使用 AT 命令读取特征是有效的 - 模块返回一个int
.
我正在读取0x2A1B内的特性onServicesDiscovered
。我可以成功阅读的其他特征。这是基于此线程的 Android 应用程序中的代码:
这是已发现服务和特征的完整列表。
android - 设置蓝牙信标设备的 UUID 无法正常工作
我与我的设备配对,我连接到它,使用此代码
这是我的 GATT 回调:
我感兴趣的部分在这里:
这将称之为:
这有效,但不是 100%,我可以说它在不到 50% 的情况下有效。我不明白为什么。有人可以帮忙吗?
我的意思是boolean statusWrite = gatt.writeCharacteristic(characteristic);
总是返回给我“TRUE”,所以如果在“changeUUID 函数中我在另一个调用之后尝试记录它,为什么它没有改变?还有其他应用程序,如果我检查,我的 UUID 没有改变,这真的很奇怪。如果值相同,为什么要写入 TRUE?