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

javascript - 如何使用 react-native-ble-plx 发现服务 UUID 和 Characterstic UUID?

问题:

我正在尝试连接到我的蓝牙设备,但是在连接并发现所有服务和特性后,由于返回的信息不足,我无法前进。我没有收到任何服务 UUID,也没有收到任何特征 UUID。

我需要做什么才能访问 UUID,然后才能读取特征?

我试过的:

通话后我的设备device.discoverAllServicesAndCharacteristics();返回:

{ _40: 0, _65: 0, _55: null, _72: null }

当我登录时,device我得到:

在这一点上,我不知道该怎么做,因为我没有收到任何有价值的信息来进一步从特征中获取信息。

根据文档,我需要 UUID 从我的设备中读取。

注意:当我在 android 上使用 Ble Scanner 应用程序时,我能够使用它们的 UUID 接收所有服务和特征。

代码片段:

github问题#293

0 投票
1 回答
286 浏览

xcode - 在 iOS 上使用 react-native 和 react-native-ble-plx 时如何解决此错误?

我正在尝试使用react-nativereact-native-ble-plx开发一个 iOS(和 Android)应用程序。它在 Android 上完美运行,但我在 iOS 上经常遇到同样的错误。我什至从头开始了一个全新的 react-native 项目,以努力将其缩小到最低公分母,每次我在添加和链接 react-native-ble-plx 包后尝试运行它时都会出现这个问题.

react-native-ble-plx 错误

任何帮助将不胜感激,我已经投入了大约 40 个小时试图解决这个问题,我很难过。

我是 iOS 开发的新手,所以我不确定哪些信息会有所帮助,但这里有几件事的版本:

  • 操作系统:maxOS High Sierra 版本 10.13.6
  • Xcode:版本 9.4.1 (9F2000)
  • 斯威夫特:版本 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)
  • 反应:版本 16.4.1
  • 反应原生:版本 0.56.0
  • react-native-ble-plx:版本 0.9.1
  • npm:版本:6.2.0
  • 纱线:版本 1.7.0
  • 迦太基:版本 0.30.1
0 投票
1 回答
5516 浏览

reactjs - React Native - 全局事件监听器

我在Pairing屏幕上注册了一个监听器,只要连接的蓝牙设备断开连接,它就会调用一个方法

我希望这个事件贯穿我的应用程序,我怎样才能创建一个全局事件侦听器,而不必在每个屏幕上复制粘贴此代码?

ps 如果有帮助,我正在使用 react-native-ble-manager 和 redux+sagas

0 投票
0 回答
235 浏览

android - Rxjs 计时器在 react-native/android 上过早完成

好的,为了问我的问题,这里有一点背景:

我有一个 react-native 项目,它使用react-native-ble-plx库来访问设备的蓝牙。该库有一个startDeviceScan接受回调的方法,因此我想使用rxjs它来扫描设备一段时间,然后将它们全部收集到一个数组中,并将结果作为承诺返回。我通过组合bufferTimetake管道运算符来做到这一点,尽管我也设法做到了takeUntil(timer())。这是扫描代码(注意:我也在使用打字稿):

问题是,当在我的设备(Android 8.0)上执行它时,bufferTime(甚至timer)太早发出〜2900ms,无论timeout. 这是一个问题,因为我不想过早完成扫描;现在我可以通过在超时时间中添加 3 秒来“处理”这个问题,但我宁愿找出根本问题,也不愿依赖这种类型的拼凑。

为了弄清楚这一点,我决定尝试一个极简主义的例子:

...而且这个例子也过早地完成了大约 2900 毫秒。

bufferTime( 和)有什么理由timer会像那样提前发射吗?请注意,我没有对 rxjs 调度程序等进行任何更改,因为我并不真正了解它们是如何工作的。也许有什么要弄清楚的?

任何帮助将不胜感激。

0 投票
2 回答
1327 浏览

android - 使用 react-native-ble-plx 避免重复的 BLE 设备

我正在使用 react-native-ble-plx 在我的应用程序中实现蓝牙

蓝牙扫描工作正常,但它在 android 中包含重复项,而在 iOS 中工作正常,因为 allowDuplicates 在 iOS 中默认为 false。

在android中,默认值为true。请提供使用 react-native-ble-plx 的 allowDuplicates 属性过滤掉重复项的解决方案

文档中 startDeviceScan 的语法:-

https://github.com/Polidea/react-native-ble-plx/wiki/Bluetooth-Scanning

我的代码:-

请告知是否仍然存在任何语法错误

0 投票
1 回答
921 浏览

react-native - 用 MiBand 反应原生 BLE

我对此真的很陌生,但我已经知道(通过通过 Internet 搜索其他项目)MiBand 具有身份验证过程。

问题是我试图在没有和响应我通过连接获得的唯一服务 UUID 的情况下编写它,它总是说乐队没有那个 UUID 服务。

我正在使用 React-Native-BLE-PLX 库。

如图所示,我使用设备的服务 UUID,因为我无法获得任何其他服务,但它总是说它不存在。

调试

真的需要帮助和感谢。

如果有什么我需要描述的,请告诉我。

0 投票
1 回答
1000 浏览

android - React Native BLE 错误:设备已断开连接

尝试使用以下方法从手机写入设备。我们要传输三个数据包。第一个数据包传输,然后我们的手机因错误而断开连接Response Characteristic Error: Error: Device disconnected

谁能阐明如何解决此响应特征错误?我们正在使用 react-native-ble-plx 库。

0 投票
0 回答
48 浏览

typescript - 订阅具有 2 个参数的事件发射器?

我的上下文是 React Native / RxJS / TypeScript

我正在尝试订阅具有 2 个参数的事件发射器。

函数原型是这样的:

... }

当我尝试像下面这样订阅时,代码将无法编译:

错误是:'(error: BleError | null, characteristic: Characteristic | null) => void' 类型的参数不可分配给'(value: any) => void' 类型的参数。

但是,似乎我只能从事件中获得一个论点。

我做了一些研究,发现了这个。这是关于将 2 个参数投影到一个数组中。

我不知道这是否仍然有效,并且似乎无法绕过它来做同样的事情。

0 投票
1 回答
640 浏览

react-native - 我应该将 onBackPressureBuffer(n) 放在 RxJava 订阅链的哪个位置?

我正在尝试修复现有的 React Native 库react-native-ble-plx在现有的 Java 代码中添加 onBackPressureBuffer() 。

我知道这很难看,但我现在没有时间提交 PR,并且有一个未决的问题可以解决这个问题。我这样做是因为事件发射器工作在 200Hz。我需要一种安全的方式来缓冲本机端的项目,同时它们在 JavaScript 端以自己的速度被消耗。

所以代码变成了下面这样:

我的问题是,即使添加了那个,我也遇到了 MissingBackPressure 异常。

我已经尝试过 onBackPressureDrop() 并且我的行为完全相同。所以我认为我做错了,但现在不知道为什么。

任何帮助表示赞赏。

0 投票
0 回答
1933 浏览

javascript - android中使用react-native-ble-plx API的BLE外围连接问题

我正在创建一个应用程序,我需要扫描所有 BLE 信标并连接到特定的信标,然后在该外围设备上执行其他操作。我能够扫描 android 设备上的外围设备,但我无法连接到它们中的任何一个。在下面的代码中,使用了 react-native-ble-plx API。

如果我从 connectToDevice() 函数中删除 autoConnect 选项,我会收到一个错误,即 ERROR: Device MAC_ADDRESS is disconnected。