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

xamarin.ios - 如何在 xamarin 中以编程方式通过 SPP 配置文件连接设备

我有蓝牙设备,如何通过 SPP 配置文件在 xamarin (monotouch) 中以编程方式连接它,并阅读设备消息我需要以编程方式识别可用设备并选择我的设备?我试试这段代码

0 投票
0 回答
737 浏览

java - Android 应用程序在 30 秒后丢弃蓝牙 2 SPP 数据流

问题。 我的 Android 应用程序中通过蓝牙 2 SPP 连接的数据流在大约 30 秒后挂起

语境。 我正在尝试将运行 Android 4.3(第一代 nexus 7)作为客户端的 android 平板电脑连接到由 Atmega 1284P 微控制器控制的蓝牙 2 RN-41 模块。微控制器只是通过 USART 线将数据推送到蓝牙模块,我已经成功连接到模块并在我的 android 应用程序中流式传输一些数据。但是,我注意到大约三十秒后数据流停止(即使连接似乎仍然存在)。这让我发疯,我不太确定出了什么问题。我是一名初级 Android 开发人员。感谢大家的帮助!

安卓代码。我去掉了 else 和一些 catch 来缩短代码量,并试图将代码分解为逻辑的、注释的部分。我是新手,所以如果我的代码很愚蠢,我深表歉意!

研究。我读了几篇没有运气的文章。例如: Android 蓝牙 SPP 连接似乎在几秒钟后就死机了

0 投票
1 回答
1325 浏览

android - 连接 A&D UA-767PBT 血压计

我需要从 A&D Medical UA-767PBT(没有结尾“C”)到一个简单的 android 应用程序进行测量。UA-767PBT 使用 SDP 和 SPP 与接入点(我的安卓平板电脑)进行通信。我有服务名称、鳕鱼过滤器和密码。我已将 BluetoothChat 示例用作起点,我已使用正确的服务名称 SPP UUID 修改了“listenUsingRfcommWithServiceRecord”并设置了一个带有引用的引脚,但应用程序仍然显示“无法连接到设备”。我在这里读到不能接受传入的蓝牙连接,除非设备可以发现 有关端口问题的东西,但我不知道如何做这些事情。

有人能够连接到此设备并给我一些提示/示例吗?

谢谢

PS 我刚刚轻松连接到 A&D UA-767PBT-C。

PPS,对不起我的英语:D

0 投票
2 回答
5081 浏览

bluetooth - 通用应用程序和医疗设备之间的蓝牙连接 - UUID 和 CODFilter

我正在 Windows 8.1 和 Windows Phone 8.1 平台上实现一个通用应用程序,它应该通过蓝牙技术与体重或血压监测器等设备连接。不幸的是,我在发现过程中遇到了困难,因此我没有机会配对和连接到设备。

我找到了关于这个问题的线程,但不幸的是它与 Android 相关联。

从上面的帖子:

描述医疗设备:该设备正在使用服务发现协议 (SDP) 和串行端口配置文件 (SPP)。它启动查询程序以发现(最多 10 个)具有匹配 COD 过滤器和服务名称的周围接入点。然后它通过检查 PIN 顺序地与接入点建立连接(使用 Page Procedure)。匹配 PIN 后,将上传数据。上传数据后,设备等待确认。设备是主设备并启动通信。

我也从Microsoft Bluetooth Rfcomm Sample开始。

我的问题:

  1. 我对我的标准UUID编号 00001101-0000-1000-8000-00805F9B34FB 持怀疑态度。在这种情况下合适吗?

    /li>
  2. 我不确定是否有更好的方法来设置服务名称?也许我做错了?我认为这是一个主要问题。

  3. 那么COD 过滤器呢(在规范中有一个注释,它应该等于 [00000000] 以进行正确的通信?有没有使用 RfcommServiceProvider 设置它的方法?也许我还应该手动设置 PIN 码,或者仅在配对过程中需要它?

  4. 我注意到,在 microsoft 示例中 - 服务器仅支持 Windows 平台。是否也可以为 WP 实现服务器功能?- 将从医疗设备接收数据的设备应该是从设备。

我也读过 Gatt 协议,但它没有为我需要的所有设备提供配置文件。

在此先感谢您的帮助。

0 投票
1 回答
15163 浏览

android-bluetooth - 为 Android Nexus 5 调用 getBluetoothService() 时没有 BluetoothManagerCallback

我将实现通过蓝牙将命令从我的 Android 智能手机发送到 HC-06 的模块。在执行时,它显示以下异常,并且找不到标题为错误消息的线索。请您告诉修改方法?

异常日志消息:

以下是我的代码

这是我的Activity

0 投票
1 回答
771 浏览

ios - 使用 SPP 将 iOS 设备连接到蓝牙设备

我正在开发一款显示 iOS 设备通知的手表,例如..

  • 显示已安装应用通知
  • 显示呼叫通知
  • 显示消息通知..等

我已经阅读了一些文章并了解了 GATT 和 ANCS,这两个本身足以在其他蓝牙设备上显示 iOS 设备通知。

这是否意味着我不需要任何 iOS 应用程序来处理 iOS 设备通知?

目前我的手表是用 SPP 构建的,我需要对此进行任何修改吗?

我也知道我必须申请 MFi 计划(https://developer.apple.com/programs/mfi/)。

我上面提到的想法,我的手表是否需要 MFi?

任何建议将不胜感激。

提前致谢

0 投票
1 回答
1515 浏览

android - Android 4.0 & 4.1 蓝牙问题。检测损坏的通讯和丢失配对

大家好

我知道 Android 的蓝牙堆栈(bluez)在 4.2 上被替换了。尽管他们可能已经修复了很多以前的问题,但由于需要支持旧版本,我仍然需要与他们战斗。

如果有人以前处理过这个问题并能提供一些启示,我将不胜感激。

问题 #1 - 无法检测到损坏的通讯(4.0 和 4.1 Android,Bluez 蓝牙堆栈)

蓝牙应用程序连接到我们自己的自定义 SPP 设备(我们使用标准UUID)。它使用在它自己的进程上运行的蓝牙服务。这个应用程序需要运行几个小时才能完成蓝牙工作。

省电/屏幕锁定期间,当数据通过蓝牙无线电进入时,应用程序保持活动状态,并且我定期检查设置的警报,我请求 CPU 时间重新连接并继续工作(如有必要)

现在; 系统大部分时间都运行良好,但是,在某些罕见的情况下,当屏幕锁定并处于省电模式时,由于我不明白的原因,在写入输出(蓝牙套接字)时,一切似乎在没有检测到断开连接的情况下通过。spp 设备仍然声明连接和配对有效,但没有收到任何信息。

在 Android 端,日志显示对BluetoothSocket.cpp::writeNative的本机调用(假设它与bluez蓝牙堆栈直接相关)似乎只是将字节正确写入蓝牙无线电而没有报告任何类型的错误。

写入输出流的代码片段:

日志猫:

D/com.our.app.bluetooth(8711):字节发送:[B@41e0bcf8

D/com.our.app.bluetooth(8711):要写入的蓝牙字节数:[B@41e0bcf8

V/BluetoothSocket.cpp(8711):writeNative

D/com.our.app.bluetooth(8711):蓝牙字节写入:[B@41e0bcf8

问题- 假设除了应用程序级别的检查和心跳之外,应该在这种情况下的套接字 I/O 操作中检测到​​损坏的通信是否正确?还是蓝牙收音机在省电期间会掉线?

问题 #2 - 突然从配对列表中删除。

在 Android 4.0 和 4.1 中,设备在某些情况下会莫名其妙地从配对列表中删除。即使这种情况很少见,而且仅在某些特定设备中才有……这种情况会阻止手机轻松重新配对和连接。

我确实注意到SPP设备配对正确,但有时,android 设备会显示消息“无法与设备 X 配对,PIN 或密码不正确”。

注意:对于 < 4.2 的 android 版本,我们确实使用不安全的通信(createInsecureRfcommSocket,由于此版本的其他 android 连接问题)。

问题- 在会话期间应多久刷新一次此 PIN/密码?

这很可能是我们 SPP 设备中的一个错误,但如果不是,有什么想法吗?

谢谢一百万

0 投票
1 回答
643 浏览

android - Android 蓝牙 SPP - 如何停止传输内部发送缓冲区?

我正在尝试使用 Android SPP 蓝牙插座接口以“尽可能接近”的方式实时控制/操作 Android 手机上的电机。电机应该以所谓的“死人”操作模式运行。所以电机只有在android APP上的一个按钮被触摸时才会转动,如果触摸被释放则应该立即停止。

我通过大约每 20 毫秒连续发送 20 字节的“保持转动”电报来实现这一点,以保持电机转动,并在没有收到更多电报或收到停止电报时立即停止电机。

这在某些手机上似乎可以接受,但其他手机即使在处理 MotionEvent.ACTION_UP 事件并且不再发送数据之后仍继续发送“继续转动”电报。

我假设这是由一些缓存传输数据并继续发送直到缓冲区为空的内部缓冲区引起的。

简单的问题:

  • 有没有办法清除 BT 流传输缓冲区以立即停止所有数据传输?
  • 或者我可以得到传输缓冲区的填充水平,在这种情况下我不会将超过 2 个电报放入其中?
  • 或者有没有办法在打开流时指定缓冲区大小?

在网上搜索,我找不到任何关于缓冲区管理的 BT 流缓冲区大小的内容。

是的,我已经将读写功能实现为线程,我在阅读所有电报时没有任何问题,我不需要实时发送电报,但我应该能够停止发送“继续转动”电报约50 到 100 毫秒。

任何提示都非常受欢迎。

0 投票
1 回答
1275 浏览

bluetooth - 启用 Android A2DP SINK 和 RFCOMM 同时流量 (Lollipop)

背景:

我希望在我的 Nexus 4 和 5 设备(运行 Lollipop)上启用 A2DP 音频流 SINK 支持。我的应用程序命令和控制还需要并发 SPP/RFCOMM 双向流量。我将通过蓝牙模块(例如BlueGiga WT32i或)向微控制器发送串行流量,该模块将控制各种其他硬件。因此,我相信 AVRCP 不能胜任这项任务。

问题:

是否有人在 Android 中启用了 A2DP SINK 支持(Target Lollipop 或更早版本)并且成功地使并发 SPP/RFCOMM 通道正常工作,或者可以提供有关如何实现此目的的选项?

0 投票
0 回答
223 浏览

android - 蓝牙数据包在进行其他一些计算时丢失

我的 Android 设备和 WT-12 蓝牙模块通过 RFCOMM 进行通信。我的数据速率大约约为 180kbps。如果我只获取数据而不在线处理,我的数据没有任何问题。但是,当我尝试使用计数器对数据进行一些计算时,可能会丢失数据。我认为它正在发生,因为缓冲区是在我阅读之前写入的。有没有办法避免这种情况?我通过蓝牙捕获数据的代码如下: