无法使用 react-native-bluetooth-classic 连接到设备

Posted

技术标签:

【中文标题】无法使用 react-native-bluetooth-classic 连接到设备【英文标题】:Can't connect to a device using react-native-bluetooth-classic 【发布时间】:2020-01-06 11:35:33 【问题描述】:

我正在尝试使用“react-native-bluetooth-classic”将数据从一部 android 手机发送到另一部手机。我成功运行了 repo 中的示例,但我无法连接到配对设备。有时,我可以连接到一个手机,但另一个无法连接回来。

我应该对手机的蓝牙进行任何配置吗?

【问题讨论】:

图书馆中没有特定于电话到电话通信的内容。也没有接受连接的功能(虽然有一个拉请求,但我现在犹豫要不要拉它)。您可以尝试使用该版本,您可以通过 github 拉取请求找到它。话虽如此,如果您可以正常连接到设备,我会说一些非常具体的东西。我从未计划过的接吻。我已经使用 app 针对 windows 和 mac 测试了该应用,并且都成功了。 实际上有一个拉取请求待处理,适用于电话到电话。在合并之前我正在等待可能的事情。 @kendavidson 你能在合并时告诉我吗? 可能不会再过一周了。我建议如果您需要它,请查看 pull requests 并找到具有此功能的 fork。如果你可以做一些测试,看看它是否好(它看起来不错,但我没有时间实际测试它)并评论拉取请求是否有任何问题。这将是一个很大的帮助。 我会看看我能做什么。 TBH,我仍然是反应原生的新手,但我会尽力而为。谢谢。 【参考方案1】:

昨晚合并了拉取请求,应该能够使用设备列表底部的Accept Connection 按钮使用提供的BluetoothClassicExample 应用程序从一台设备连接到另一台设备。

async acceptConnections() 
  console.log("App is accepting connections now...");
  this.setState( isAccepting: true );

  try 
    let connectedDevice = await RNBluetoothClassic.accept();

    if (connectedDevice)   // Undefined if cancelled
      this.setState( connectedDevice, isAccepting: false );
          
   catch(error) 
    console.log(error);
    this.refs.toast.show(
      `Unable to accept client connection`,
      DURATION.LENGTH_SHORT
    );
    this.setSTate( isAccepting: false );
  

这仅在 Android 上可用,据我所知,无法在 ios 上查看连接。我能够使用示例应用程序将我的 Android 连接到我的 IOS,但没有 Android MFi 协议,数据只会被发送到 IOS void。

【讨论】:

以上是关于无法使用 react-native-bluetooth-classic 连接到设备的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 StorageClass 配置卷 - 无法获取存储帐户的存储密钥

Worklight Studio 和本地开发,有时无法使用 Java 类,有时无法使用 HTML 文件

ADB无法使用解决办法

Ubuntu 80端口无法使用-非root用户无法使用1024以下端口

无法在 SQL Server 视图中使用工作查询:“IS”无法识别“>”无法识别

LINUX下的mail\mailx为啥无法使用外部SMTP发邮件