问题标签 [react-native-ble-plx]

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 投票
0 回答
79 浏览

ios - BLE 设备未在蓝牙设置中的蓝牙设备列表下列出

我正在尝试构建一个通过 BLE 从 WaterRower 机器读取数据的移动应用程序。这就是我说的机器,https://www.waterrower.co.uk/waterrower-natural-rowing-machine。WaterRower 有自己的应用程序https://apps.apple.com/us/app/waterrower-monitor/id1463763094可以连接到机器的蓝牙/BLE 并从中读取数据。但是当我下载应用程序并打开应用程序时,应用程序可以找到 WaterRower 机器并通过蓝牙连接到它。WaterRower 应用程序可以在应用程序中找到机器的蓝牙,如下所示。

在此处输入图像描述

如您所见,WaterRower 机器蓝牙的名称是 PD1186。机器连接后,我还可以在设备的蓝牙列表中看到如下。

在此处输入图像描述

当机器在 WaterRower 应用程序中连接到我 iPhone 的蓝牙时,它也出现在手机的已连接蓝牙设备列表中。但是,如果我尝试在不使用 WaterRower 应用程序的情况下找到 WaterRower 机器,则机器的蓝牙未列出,如下所示。我的 iPhone 无法扫描它。

在此处输入图像描述

正如您在屏幕截图中看到的那样,WaterRower 机器根本没有列在扫描的设备列表下。它只能使用 WaterRower 应用程序找到并连接。另外,我正在尝试在本文之后列出 ReactNative 中的设备,https: //blog.bam.tech/developer-news/make-your-first-iot-react-native-application-with-the-bluetooth-低能。但是WaterRower机器根本不在名单上。

那是什么样的BLE技术?这是WaterRower的某种私人技术吗?我可以不构建自己的应用程序并将其与机器配对以读取数据吗?甚至可以通过我自己的应用程序与机器配对吗?为什么 iPhone 蓝牙设备列表下没有出现晚上,只能从应用程序连接?

0 投票
0 回答
225 浏览

react-native - ReactNative:解码从 BLE 接收到的特征值不起作用

我正在构建一个 ReactNative 应用程序,它将通过 BLE 从另一台机器/设备接收数据。我正在使用这个包https://www.npmjs.com/package/react-native-ble-plx来实现 BLE 逻辑。现在,我在解码从监视器功能收到的特征值时遇到问题。

这是我的代码

收到数据后,如您所见,我正在对其进行 base64 解码以获取其原始值。但似乎数据未解码为正确的格式。

例如,

这是原始值

但它被解码为以下值。

如您所见,它根本不可读。解码后的值甚至包含奇怪的字符。我正在使用这个 ReactNative base64 包,https: //www.npmjs.com/package/react-native-base64 。我的代码中缺少什么以及如何修复它?

这是服务 UUID,00001826-0000-1000-8000-00805F9B34FB,这是特征 UUID,00002AD1-0000-1000-8000-00805F9B34FB。

此外,此文档可能很有用,因为我正在尝试从 WaterRower 机器接收数据,https://github.com/WaterRower-UK/WaterRowerData-iOS/blob/master/Sources/WaterRowerData-BLE/FTMS_v1.0.pdf

0 投票
0 回答
121 浏览

react-native - react native ble plx:写入失败后断开连接

情况是onPressIn我需要向 ble 设备发送写入命令,直到onPressOut被触发。

这是我的writeMessage功能

我正在实施它:

它一直工作到发现写入失败,然后设备断开连接。

LOG error in monitering [BleError: Device D4:36:39:6F:FF:41 was disconnected]

0 投票
1 回答
376 浏览

react-native - 无法通过本机 ble 管理器停止扫描并连接到设备

React Native 应用程序与 BLE 管理器用于与 BLE 设备交互。

我能够扫描设备,默认运行 10 秒。

预期的操作,当我找到一个设备并单击连接按钮 [在同一页面上,正在扫描设备的位置],我需要停止进一步扫描并启动连接。

问题是,它在扫描期间没有响应按钮操作。只有在给定时间后完成扫描后,才会发起连接请求。

当点击连接按钮时,代码片段如下。

0 投票
2 回答
212 浏览

react-native - React Native Mi 秤体重数据

我正在尝试从 mi scale V2 获取数据。我得到这样的服务数据: “serviceData”: {“0000181b-0000-1000-8000-00805f9b34fb”: “BiTlBwcZFgsYAAAmAg==”}(5.15kg) 我将 base64 字符串解码为这样的数组 [66, 105, 84, 108, 66, 119, 99, 90, 70, 103, 115, 89, 65, 65, 65, 109, 65, 103, 61, 61] 但我无法检索到正确的结果。如何获取体重数据?

0 投票
0 回答
863 浏览

android - react-native-ble-plx 帮助获取服务和特征并写入无响应

我是 Ble-Plx 和 React-Native 的新手,我正在做一个项目,我们应该能够连接到设备并改变行为,只需编写新特性,它应该会改变......我使用了 Ble我在互联网上找到的启动器,我能够编写特征并改变行为。所以我知道外设可以做到,我只需要开发代码。我已经有了一些东西,但是当我编写设备的特性时,设备并没有像我们预期的那样改变,设备什么也不做,我也没有收到任何错误或什么东西只是设备什么都不做。这是一段代码,如果有人可以提供帮助,那就太棒了!

这是代码的主要部分:

这是 CONSOLE.LOG 给我的信息。

但是即使没有错误,设备也没有改变,所以有我的问题,我无法让设备改变行为并开始振动(只需编写特征)

0 投票
0 回答
452 浏览

javascript - 在 React Native 中为 ble-plx 构建读/写特征代码

需要有关如何为与 ESP32 配对的 React Native 应用程序布局功能的指南,该应用程序最终将使用读取特性反馈重量读数,并能够通过写入特性来切换 DI。

我目前可以扫描并连接到 ESP32 并显示来自 ESP32 的值(现在是随机变化的值),还可以通过更改硬编码值来切换 LED。但我希望能够通过应用程序中的按钮来做到这一点。

试图对 [ble-plx 文档][1] ([github wiki][2]) 进行排序时,我感到很困惑

目前我可以让 LED 打开/关闭的唯一方法是我在 deviceNotifications 异步函数中有 LED 切换部分,并且必须手动更改在代码本身中编码和写入的值,而不是从 App UI使用 useState 值。

我尝试使用 useState 关闭一个按钮(切换值并注销 OK),然后重新调用 deviceConnect 函数,但是 .then promise 部分中注释掉的 console.log 在第一个之后不起作用,返回打开 LED(将“A”写入特征)。

感谢您提前提供的任何帮助,我知道很多这些 ble-plx 问题都没有得到解答。

0 投票
1 回答
41 浏览

react-native - 蓝牙ID与其他设备扫描的不一样

我正在开发一个扫描附近蓝牙设备的应用程序,然后检查数据库,如果用户存在蓝牙 ID,如果存在,则将其显示给附近的其他用户。

但问题是当人们安装应用程序时,我们会获取蓝牙 ID 并将其存储在数据库中,但之后会扫描蓝牙 ID 的变化。

本地设备中的蓝牙 id 与扫描的不一样(由其他设备)

除了蓝牙 ID 或我们如何获得唯一 ID 之外,我们还有什么方法可以做到这一点 - 我正在使用 react-native-ble-manager

0 投票
0 回答
52 浏览

react-native - 并非所有在 Android 上返回的制造商特定数据 - react-native-ble-plx

Android 设备上的 deviceScan 返回的 ManufacturerSpecificData 不包括我期望的所有数据。我期待广告和 scanResponse 一起出现。IOS收到罚款。

几年前在 GitHub 上提出了一个关于此的问题,但没有后续行动?

https://github.com/dotintent/react-native-ble-plx/issues/483

所以我想知道是否有我遗漏的选项?我目前正在使用默认值。我尝试了不同的 ScanCallbackType 但似乎没有任何区别。

我还不能在其他 Android 设备上试用。但是,使用 react-native-ble-manager 和接收数据的同一 Android 设备,所以我认为它不是特定于设备的。

0 投票
1 回答
2792 浏览

android - FabricViewStateManager:在没有 StateWrapper 的情况下调用 setState

我是一名 iOS 开发人员,第一次使用 React-native 进入 Android d。

我正在使用 polidieas react-native-ble-plx 库创建一个使用 bluetooth-le 的 react-native 应用程序。iOS 应用程序运行良好,蓝牙扫描和检测设备。当我在 Android 上运行时,它开始扫描并且我收到错误“FabricViewStateManager: setState called without a StateWrapper”并且找不到任何文档或此错误语句的帮助。

两个问题:

  1. 有人在 Anmdroid 上运行 React-Native 应用程序时看到此错误:FabricViewStateManager: setState 在没有 StateWrapper 的情况下调用。

  2. 有人对如何隔离错误发生的位置有任何想法吗?

这是错误之前的控制台: