问题标签 [spp]

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

android - 安卓蓝牙连接不上

我正在创建一个通过蓝牙连接到使用 SPP 协议的自定义硬件设备的应用程序。问题是我无法连接到设备。在测试之前,我尝试过:

两项测试均成功,但当我尝试将自定义设备与我的应用程序连接时,连接过程出现异常

我到处搜索,但找不到任何使应用程序连接设备的东西。特别是我读到:

这是我用来连接的类,特别是我认为错误出现在代码后半部分的子类中connectThread(返回异常的方法是)。mmSocket.connect()

我以客户端身份连接,我尝试了不安全和安全连接。我真的不知道该怎么办。

0 投票
1 回答
872 浏览

android - Android 和 iPhone 可以通过蓝牙 SPP 配置文件进行通信吗?

Android 和 iPhone 通过蓝牙 SPP 配置文件进行通信?巨大的数据通信可能吗?无法使用 BLE。

0 投票
1 回答
217 浏览

android - Android SPP 蓝牙:实现后台连接尝试

我想尽量减少用户参与使用 SPP 医疗设备的需要。用户只需配对设备,然后在设备可连接时自动进行连接。HDP 经典设备是这样的,BTLE 设备也是如此(后者在 Android 上工作)。

所以显而易见的解决方案是在配对之后,创建 RFCOMM 套接字并调用 connect() 方法(也许还有处理各种错误的所有变通方法)。

但是,根据文档,这种阻塞方法会在 12 秒左右后超时,所以如果我真的想在设备“上线”时持续为设备做好准备,我需要在 while 循环中执行此操作,直到连接成功。

所以问题是如果我这样做,设备的这种持续“ping”是否会使系统过载并耗尽电池?鉴于 Android 上的 HDP 实现会发生类似的事情,他们也必须做类似的事情,但也许他们会降低 ping 的频率,因此它对资源的要求不高。

有没有人尝试对 SPP 设备进行持续监控的经验?谢谢!

0 投票
0 回答
491 浏览

bluetooth - 如何将多个蓝牙传感器连接到设备

我有多个蓝牙传感器(20+),我需要通过蓝牙连接到任何中央设备(PC、电话……)以收集传输的数据。

我需要保持与传感器的连接处于活动状态,因为它每秒广播 20 次数据。

我已经考虑过使用 RaspberryPi 设置主从模式并启用多蓝牙连接,但我想知道是否有更优雅和简单的方法来做到这一点。

唯一的目标是同时从传感器收集数据。我对该技术的“收集器设备”没有限制。

谢谢

0 投票
1 回答
485 浏览

android - 在蓝牙 rfcomm 设备上读取时数据丢失

我有一个通过蓝牙 SPP 配置文件连接到 Android 智能手机的蓝牙设备。

连接成功后,设备会打开 rfcomm 设备

成功连接后,智能手机向设备发送数据。它向设备发送 3 个连续的几个字节的消息。这在查看蓝牙设备的监听日志后得到验证。

然而,蓝牙设备端的阻塞读取永远无法读取最初的 2 条消息,之后它会读取所有其他消息。

通过编写一个独立脚本来尝试相同的实验,该脚本在 SPP 连接成功后立即开始读取 rfcomm 设备上的数据,但这里的结果也是相同的。

请指导可能出现的问题。

0 投票
0 回答
245 浏览

android - Android 蓝牙 a2dp 和 spp 可以同时使用吗?又名音频和数据在同一时间

您好,我使用的是 bk8000l 芯片,它按照规格同时支持 spp 和 a2dp。我需要找到/构建一个应用程序,它可以发送一些 spp 命令以及来自手机麦克风的语音。是一个ptt(一键通)。数据必须由串行端口上的 pic cpu 接收,才能在收发器端开始/停止传输,按下/释放手机上的按钮。音频显然是我认为需要的。请给我一些想法谢谢。

0 投票
1 回答
1182 浏览

android - 蓝牙 SPP:蓝牙 SPP Pro (Android) 与 Microchip SmartData (iOS)

全部,

我正在尝试通过 SPP 配置文件与连接到微控制器的 RN4678 蓝牙芯片进行通信。

我从来没有遇到过 Android 应用程序的问题。我总是可以配对(如果未配对)、连接、向芯片发送消息和断开连接。下面是一个示例会话:

使用 iOS 应用程序,我始终可以配对(如果未配对)、连接和断开连接。但是,如果我无法向芯片发送消息。下面是一个示例会话:

有趣的是,如果我先用安卓连接/断开连接,然后用iPhone/iPad连接,接收成功!!!!

据我所知,处理的路径是相同的......换句话说:

因此,我恳请您提出以下问题:

1 - 你有没有遇到过类似的事情?你有什么提示吗?Android 应用程序可能会做哪些 iPhone 应用程序没有做的事情?我忽略或不理解什么?

2 - 您是否知道适用于 iOS 和 Android 的应用程序?我的意思是,由同一个人/公司设计?

如果您需要更多信息,请询问。我只是不想太“冗长”。

谢谢您的帮助。

真诚的,文森佐

0 投票
0 回答
100 浏览

linux - RFCOMM 数据包是否保证完整?

我正在编写一个使用Headset Profile与蓝牙设备交互的应用程序。这些设备主要通过通过AT串行端口配置文件 ( SPP) 连接发送的命令进行通信。SPP直接在上面RFCOMM

我担心的是我是否能保证接收到“整个”数据包(AT命令),或者是否有可能我需要能够处理AT跨多个数据包拆分的命令。

此外,如果RFCOMM协议不保证这一点,协议栈是否会进行任何处理以保证接收“完整”AT命令?我BlueZ 5.46Linux 4.12内核上使用。

如果可能,请参考标准或外部资源,详细说明如何RFCOMM保证这一点,以便我可以了解更多信息。

0 投票
0 回答
549 浏览

bluetooth - UWP 蓝牙 RFComm ConnectAsync 问题

我正在开发一个与设备建立蓝牙(RFComm,SPP)连接的应用程序。我的 Android 应用程序就像一个魅力,但使用 UWP 我在使用以下方式完成连接时遇到了很大问题:

socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);

连接设备后,一切正常。有时 ConnectAsync 需要很长时间(1 分钟)或最终不起作用。

似乎当我启动应用程序时,第一个连接工作并在几秒钟内连接,但所有后续连接似乎都非常不稳定。

我尝试了不同的 USB 加密狗,但结果相同。我现在使用的是 Win 10 Pro 64 1709。

我还尝试了 UWP RFComm Chat 示例应用。那里同样的问题。

有人有类似的问题吗?有任何想法吗?

谢谢,约阿希姆

一些更新:我测试了其他一些加密狗和 SPP 设备。我的结果:

  1. 一个 SPP 设备工作,两个有这个问题。一个不工作的例子:BluePort XP 和 ASUS USB-BT400

  2. 通过 Win32 API 或 .net SerialPort 使用虚拟 COM 端口适用于所有设备!

结论:硬件工作。问题出在使用 socket.ConnectAsync 的 UWP 上!这是Win10 UWP Bug吗??!!

第二次更新:

我发现如果我使用以下设备: DeviceInformationCollection collection = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));

并使用 rfcomm 连接: var services = await _device.GetRfcommServicesForIdAsync(RfcommServiceId.SerialPort, BluetoothCacheMode.Uncached); var op = _socket.ConnectAsync(_service.ConnectionHostName, _service.ConnectionServiceName);

然后我在连接时间上有这个问题 - 在第一个连接/断开阶段之后

但是:当我使用从 SPP 加密狗创建的虚拟 com 端口时

DeviceInformationCollection 集合 = 等待 DeviceInformation.FindAllAsync("System.Devices.InterfaceClassGuid:=\"{86E0D1E0-8089-11D0-9CE4-08003E301F73}\" AND System.Devices.InterfaceEnabled:=System.StructuredQueryType.Boolean#True");

并使用以下方法创建一个 SerialDevice: var serialDevice = await SerialDevice.FromIdAsync(info.Id);

在创建此 serialDevice 时自动连接蓝牙目标,然后一切正常。

0 投票
1 回答
1194 浏览

c# - 使用串口和 windows 10 (spp1.1) 的蓝牙通信

我在 Windows 10 和外部设备之间存在蓝牙连接问题,其中制造商(假设 CompanyX)使用串行端口配置文件 1.1。只有我从 CompanyX 得到的是关于使用虚拟串行端口进行通信的文档。这不是一个好的解决方案,因为 Windows 10 只有 SPP 1.2,所以我在配对和连接这个设备时遇到了很多问题。

在我的 WPF c# 应用程序中,我使用 Gurux lib。当设备连接时,我发送和接收数据没有任何问题,但在 99% 的连接尝试中,端口很忙,因此连接时间过长(有时 10/15 分钟)。更重要的是... Windows 10 配对有问题,并且设备已连接但没有任何端口名称。我在几台装有 Windows 10 的设备上测试了这个案例,即使我在 regedit 中删除配对设备,一台平板电脑也有问题。

几天前,CompanyX 告诉我,我们可以使用 rfcomm 将他们的设备连接到 Windows 10 并且它(可能)工作,但他们不想说如何做到这一点。我有这个设备的 MAC 地址,但我不知道 rfcomm 技术(只知道那是客户端/服务器通信)。在这种情况下,任何人都可以帮助我吗?一些例子或提示?我是 C# 新手,所以我需要你的帮助来解决这个问题。</p>