问题标签 [bluetooth-socket]

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 回答
90 浏览

android - Android studio - stay connected to a bluetooth socket at all times

I am building an Android app that uses Bluetooth. For a couple of weeks now I've been trying to create service that could provide Bluetooth connection to a socket at all times, but nothing worked for me. The goal: Bluetooth service that is connected even if the app is closed. I've tried: - Bound service - Singleton service - Shared class

Is there something else I can try?

0 投票
1 回答
8719 浏览

android - 使用 React-Native App 连接蓝牙设备

我正在使用 react-native-bluetooth-serial。每当我尝试通过我的 react native 应用程序连接蓝牙设备时,我都会收到此错误:

错误:读取失败,套接字可能关闭或超时,读取 ret:-1 无法连接到设备

这是我正在尝试做的事情:

即使我克隆示例存储库也会发生同样的情况。

知道为什么会这样吗?

0 投票
0 回答
42 浏览

android - 如何重置 BluetoothSocket 输入和输出流

我有两个用 Kotlin 编写的 android 应用程序 - 一个用作经典蓝牙服务器,另一个用作经典蓝牙客户端,使用 BluetoothSocket 类。

我可以建立一个连接并使用它从服务器发送图像作为对客户端请求的回复,并且可能需要几秒钟来发送单个请求的所有图像,服务器在一次写入操作中发送每个图像到输出流,但客户端将其划分为最多 990 个字节的部分。

我的问题是取消数据传输 - 我希望如果服务器发送当前请求并且在中间请求客户端请求新请求 - 我希望服务器或客户端能够重置流,以便客户端不再获取旧响应的部分,但只获取新响应的部分。目前,我仍然在客户端收到较旧的响应数据包,这会导致较新的响应延迟。

我尝试使用重置,但显然它在蓝牙套接字的输入流中不受支持。我如何才能重置套接字或其流,以便在客户端收到更新的响应。

谢谢。

0 投票
0 回答
49 浏览

android - 为什么 BluetoothSocket.getMaxReceivePacketSize() 和 BluetoothSocket.getMaxTransmitPacketSize() 返回 0?

我开发了两个通过经典蓝牙进行通信的应用程序——一个作为客户端,另一个作为服务器。getMaxReceivePacketSize()我设法执行成功的连接,我想使用 BluetoothSocket 方法和方法优化我的读写操作getMaxTransmitPacketSize(),但由于某种原因,它们都只返回 0。这可能是什么原因?提前谢谢。

0 投票
0 回答
13 浏览

bluetooth - 蓝牙套接字连接 - 在每个请求上保持或重新连接?

使用蓝牙套接字的标准方式是什么 - 应用程序是否应该保持打开的蓝牙连接,只要它需要能够与蓝牙设备通信(可能是数小时或数天),或者它应该根据“请求”连接和关闭" (请求含义 - 当应用程序需要来自蓝牙设备的东西时)?

0 投票
0 回答
37 浏览

android - PDF 文件写入问题 - BluetoothSocket OutputStream.write()

我在我的 android 项目中将PDF 文件写入 BluetoothSocket OutputStream时遇到问题。文本文件写入(打印)工作正常,但是当我编写 PDF 文件时,它会打印出一些乱码,而不是 PDF 文件中的数据。这是我的代码片段:

这里的outputStream是 BluetoothSocket OutputStream。(例如:bluetoothSocket.getOutputStream())

0 投票
0 回答
34 浏览

java - Android 在活动之间切换时失去蓝牙连接

我是 Android 开发新手,目前我正在使用 STM32 板和 Android 手机之间的蓝牙串行通信,我参考了这些项目Simple Android Bluetooth Application with Arduino Example和蓝牙聊天示例。我的项目有单独的 connectedThread 类、一个 MainActivity 和 Bluetoothactivity 来处理数据和蓝牙连接。BluetoothActivity 可以连接到连接到 stm32 的 HC-06 并接收数据,但是一旦我在 Mainactivity 和 BluetoothActivity 之间切换,连接就会丢失,而且我无法连接到同一设备,我会收到“连接失败”的消息。我已经阅读了很多关于同一问题的问题,即在 BluetoothSocket 关闭活动之间切换时,一些解决方案暗示使用服务,但事情是我不知道如何使用服务或什么是服务。我希望应用程序即使在活动之间切换时也能保持连接请为此提出解决方案。

我的课程如下: MainActivity

ConnectedThread a、b 和 c 变量用于数据包同步

蓝牙活动