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

google-chrome-extension - Web Bluetooth API get list of all available device nearby

I am looking for an API call that could be used to retrieve all the Bluetooth devices near me. These samples Web Bluetooth talk about getting different characteristics from a single Bluetooth device, however I couldn't find any example which retrieves all the Bluetooth devices(like available bluetooth devices list on windows native Bluetooth app). Is it even supported?

0 投票
1 回答
556 浏览

android - Android BluetoothDevice reading new data

I am an iOS developer building my first Android bluetooth app. In my app I have two classes, one main class that calls a second that is my BluetoothGattCallback.

After I scan for devices, I find the one I want, connect to it. This all works. My bluetooth device transmits data every 5 seconds, so far I can only get first byteArray transmission. Here is what I call in my main class.

Then in onConnectionStateChange I check that it has made a connection and call gatt?.discoverServices(). From there I can filter the UUID's in onServicesDiscovered and call gatt.readCharacteristic(characteristic). I am finally able to read my byte data in onCharacteristicRead. My question is, what step did I miss to get new data upon each transmission after the device is connected?

Bonus question: How would I manage multiple device call backs? If I try and connect more than one device, do I need to keep a reference to each instance of my callback or BluetoothGatt with that device?

0 投票
1 回答
126 浏览

java - 在android studio中,在调试应用程序BluetoothLeGatt时,我得到了以下期望:

在 Android Studio 中,在调试应用程序 BluetoothLeGatt 时,我遇到了以下异常:

从活页夹存根实现中捕获了一个 RuntimeException。java.lang.SecurityException:需要 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 权限才能在 android.bluetooth 的 android.os.Parcel.readException(Parcel.java:1637) 的 android.os.Parcel.readException(Parcel.java:1684) 处获取扫描结果。 IBluetoothGatt$Stub$Proxy.startScan(IBluetoothGatt.java:678) 在 android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper.onClientRegistered(BluetoothLeScanner.java:367) 在 android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:56)在 android.os.Binder.execTransact(Binder.java:565)

0 投票
1 回答
2943 浏览

android - BLE:如何发送写请求而不是写命令?

我正在尝试从智能手机(Android 应用程序)向蓝牙低功耗(BLE)设备发送数据包

我知道如何发送写命令:

像这样的东西:

当我在 Wireshark(嗅探应用程序)中看到这个发送的命令时,我看到了类似这样的内容

在此处输入图像描述

但我也需要发送这样的东西(不是写命令,而是写请求

在此处输入图像描述

控制设备在连接后仅发送一次此写入请求的官方应用程序

似乎没有它我将无法控制该设备

所以在我发送任何写命令之前,我需要先发送这个写请求

0 投票
0 回答
256 浏览

ios - 在所有 iOS 设备上唯一识别信标(iBeacon 和 Eddy Stone)

我正在使用在 iOS 应用程序中扫描 BLE 设备(iBeacons 和 Eddystones),我需要唯一标识扫描的 BLE 设备,因为 iOS 设备不提供 Mac 地址,但它提供了特定于设备的 UUID,即它唯一地标识了一台设备上的 Beacon,但在另一台设备上扫描时 UUID 不同。

我需要所有设备上的 BLE ID 的唯一性。请建议有什么办法吗?

为了解决这个问题,我正在考虑在扫描的 BLE 设备的广告数据包中添加自定义数据。请指导我是否有任何方法可以在 Adv Packets 中添加数据?

0 投票
1 回答
1108 浏览

android - 在 BLE Android 中写入后无法获得读取特性

我正在开发 BLE 设备。- 我可以使用BluetoothGATT将此设备与应用程序连接 - 只要与 BluetoothGatt 连接,我就能够第一次读取所有服务、特征和广告商数据。- 我们有两个特征,一个是我们需要阅读,另一个是写作,我可以写特征。

但是问题是我在写入后无法读取特征。据我了解

或者

应该自动调用,这些都是Callback方法

我的特征写入代码是

我还通过以下代码启用通知

写完后我被困在阅读特征部分

任何帮助都值得赞赏,亲爱的,在此先感谢,我在这一点上被困了 3 天。

0 投票
1 回答
1413 浏览

bluetooth - Visual Studio 中 C# Web 应用程序上的 BLE

我期待建立一个完整的在线信标管理器。它应该连接附近的 BLE 设备并注册它们以进行更多编辑。我尝试了 Bridge an Retype,但它不支持 .Net Core,只是破坏了项目。ble.net 很难使用,因为我找不到好的文档。我只找到注册信标的应用程序,然后您可以从浏览器中对其进行编辑,但我希望它全部在浏览器中,有帮助吗?几天以来一直在寻找工作的东西...

0 投票
1 回答
3097 浏览

bluetooth - Bluetoothctl 或 gatttool 用于来自多个设备的 BLE 通知

我已经阅读了有关该主题的许多问题,但没有找到有关如何最好(或者甚至可能)使用任何库或 API(最好是命令行或 Python 库)一次接收来自多个设备的通知的信息。

在连接到不同的设备后,例如心率监测器和电话,或两个 HR 监测器,有没有办法同时从每个设备接收来自 1 个服务的数据?

编辑:

只要我不请求相同的服务,我就可以连接具有相同特性的不同设备,并能够使用 Bluetoothctl(Bluez 的一部分)从它们那里获取通知,这部分回答了我的问题;仍然,有谁知道更好的方法来做到这一点?

0 投票
1 回答
352 浏览

android - 与经典蓝牙配对后,我可以在不使用 GATT 连接的情况下向 ble 4.2 或 ble 5 模块发送数据吗

我的端点设备是 BLE 4.0 或 BLE 4.2 或 BLE 5 模块

Android 建议使用 GATT 连接向 BLE 设备发送数据,链接如下:https ://developer.android.com/guide/topics/connectivity/bluetooth-le

我的问题是,如果我将手机与 Android 手机中设置应用程序中的 ble 4.2/5 模块配对,我可以使用蓝牙经典中使用的相同过程和代码将数据发送到 ble 模块:https ://developer.android .com/guide/topics/connectivity/蓝牙

例子:

0 投票
1 回答
57 浏览

android - 蓝牙连接挂在第一个蓝牙加密狗上(Android 应用程序)

我在使用通过 BT LE(蓝牙低功耗)连接的多个设备时遇到问题。

工作流程如下: 在此处输入图像描述

处理步骤: 1.扫描所有蓝牙设备以获取地址。

2.循环所有设备按步骤1获取。对于每个设备:

在 btCallBack 的 onConnectionStateChange() 上,我调用 bluetoothGatt .discoverServices(); 当连接状态为 STATE_CONNECTED 时。

与设备进行数据交换后。我打电话

处理下一个设备

问题是当我调用 bluetoothGatt.disconnect() 和 bluetoothGatt.close() 但第一个蓝牙加密狗连接总是挂起并且蓝牙加密狗的蓝色 LED 永远不会闪烁,即使我杀死了应用程序。

工作完成后,只有最后一个蓝牙加密狗可以释放连接。

我的问题是为什么我调用 disconnect() 和 close() 但它不起作用?

build.gradle:minSdkVersion 21,targetSdkVersion 28

否则,此问题仅发生在某些类型的 Android 设备上,而不是所有设备上。例如,它适用于三星设备(Android 7),但不适用于其他设备。

任何帮助,将不胜感激。