问题标签 [iobluetooth]

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

ios - IOBluetooth 或 CoreBluetooth | 如何将 iOS 与非 MFi 医疗蓝牙设备连接

我想在 iPhone 和提供心脏信息的医疗设备之间建立连接。我很快就会得到有关蓝牙协议的信息。目前我无法使用苹果的蓝牙库。CoreBluetooth 还是 IOBluetooth 更适合连接非 MFI 设备?

这是我找到的一些代码(链接),它应该可以找到周围的所有设备,但它没有用。我尝试了不同的方法来设置。

我也尝试使用 CoreBluetooth,但它也没有调用委托方法。

0 投票
1 回答
742 浏览

ios - 在 OSX 上模拟 HID:IOBluetooth 还是 CoreBluetooth?

我打算做一些简单的实验,将模拟的击键从 mac 发送到 IOS,我正在尝试决定在哪个框架上花费我的精力。

我得到的印象是 CoreBluetooth 的级别太高了,而 IOBluetooth 将是最好的选择。

IOBluetooth 是最适合用于模拟 HID 命令的框架吗?

谢谢

0 投票
1 回答
43 浏览

android - 检查什么样的内容代表接收到的字节

我的Bluetooth应用程序也可以发送图像,但我无法检查内容的类型,如果接收到的字节来自图像,则字节必须适用于ImageView,如果接收到的字节来自文本,则字节必须显示在Toast.makeText().show()

我的问题是,我需要检测接收字节的内容类型,使用一些代码而不是hereSomeTypeDetector
注意:
hereSomeTypeDetector 只是一个示例。

0 投票
1 回答
672 浏览

macos - 如何建立 L2Capp 中断通道连接?

我试图打开 L2Cap HID 通道和中断通道,以便我可以将 HID 命令发送到蓝牙设备。

我已经完成了所有服务广告和设备配对并建立了基带连接。

隐藏控制通道可以正常打开。当我尝试创建我的 kBluetoothL2CAPPSMHIDInterrupt 连接时

l2capChannelQueueSpaceAvailable

调用委托方法(不确定这是什么意思),然后

l2capChannelOpenComplete

但连接立即关闭调用

l2capChannel 关闭

如何正确打开这些连接?

我花了很长时间研究 IOBlueTooth 框架和 bluetooth.org HID 规范,但几乎没有任何有用的信息(至少我能找到)。

当我追踪我的 L2Cap 通道时,我看到一些空值

mIncomingDataListener

mEventDataListener

. 我不知道如何设置这些,或者它们是否与我的问题有关....只是推测。

下面的代码片段是我迄今为止在建立与设备的连接后进行连接的尝试。

编辑:1

我附上了我的数据包日志。很奇怪,请求

k蓝牙L2CAPPSMSDP 0x0001

在没有我要求的情况下制作,然后一切都开始断开连接。

BT 数据包日志

0 投票
0 回答
265 浏览

bluetooth - 如何正确构建 A 启动鼠标 BT HID 服务记录

我正在尝试根据蓝牙文档中的示例构建一个简单的 HID 鼠标服务记录。

https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=246761

我拼凑了大部分 plist,但它不是 100% 正确的。我了解 BT hid doc 的要求,但我只是无法将其放入 plist 文件中。

例如,如果我尝试设置

kBluetoothSDPAttributeIdentifierHIDDeviceSubclass 0x0202

它被误解为

kBluetoothSDPAttributeDeviceIdentifierProductID 0x0202

另一个例子是如果我尝试设置

kBluetoothSDPAttributeIdentifierHIDDescriptorList = 0x0206

我的日志文件显示一条消息说

属性 id : 0x0206 保留或未解码

这是我到目前为止创建的服务记录。如果有人能向我解释它有什么问题,我将不胜感激。

HID 启动鼠标

0 投票
1 回答
353 浏览

swift - 在 Swift 中使用 UnsafeMutablePointer 编码和解码字符串

我在将字符串与 UnsafeMutablePointers 相互转换时遇到问题。以下代码不起作用,返回错误的字符串。

游乐场文件的链接在这里。如果有人有在 Swift 中使用 UnsafeMutablePointers 处理字符串的经验,我将非常感谢一些指导,因为我在过去几天没有取得任何进展。再次感谢!

0 投票
1 回答
482 浏览

ios - 在 iOS 应用程序中使用蓝牙

我目前正在挖掘我在 iOS 应用程序中使用蓝牙的巢穴,我发现很难找到我正在寻找的信息。

  • 我可以从我的应用程序中打开蓝牙,还是用户必须手动打开?
  • 我可以将基本的蓝牙功能(例如发现、连接和发送数据)与其他运行蓝牙 < 4.0(经典)的设备一起使用吗
  • AFAIK CoreBluetooth 框架只能用于与运行蓝牙 4.0+ 的设备进行通信。哪个框架用于与蓝牙 < 4.0 的设备进行通信?
  • 是否可以以 Apple 拒绝我在 App Store 上的应用程序的方式使用蓝牙?那会是哪些方式?
  • 配对和非配对通信之间有区别吗?可以在不配对的情况下与另一台设备通信吗?可以从应用程序启动配对吗?

为我的问题提供一些背景信息:我目前正在开发家庭自动化应用程序的一部分,该应用程序需要与尚无 Wifi 的嵌入式设备进行通信。尚未决定哪个蓝牙版本将在嵌入式设备上运行。相同的功能将在 Android 应用程序中实现。

感谢一些有 iOS 蓝牙经验的人提供的一些意见。

0 投票
1 回答
5859 浏览

ios - 附近使用 Swift 3.0 的蓝牙设备

我正在寻找一种以编程方式列出我的设备找到的附近蓝牙设备(可发现)的方法。我无法找到有关在 Swift 3.0 中执行此调用的任何信息或教程。这篇QA 帖子讨论了使用 Swift 1.0 并在 Xcode 6 中构建这些设备,而不是在最新版本 8 中。

我尽我所能尝试将我的代码从 1.0 变成 3.0 语法,但是在运行以下代码时,Playground 中没有返回任何内容:

0 投票
1 回答
522 浏览

swift - 通道打开时未触发通道打开通知的 IOBluetooth 寄存器

我正在开发一个需要蓝牙 2.1 的项目,并且我正在尝试制作一个测试客户端来连接到硬件。

因此,我一直在翻阅 IOBluetooth 的“文档”,并设法广播了 SDP 服务记录。

在设备(android)上打开一个连接并将数据写入我的计算机工作(根据远程设备),但我的客户端工具实际上并没有调用通知的选择器......

直到我停止客户端程序并重新启动它,在这种情况下它会立即触发。

关于通知如何触发的文档也很少,无论它们是否是异步的。

我已经绞尽脑汁一个星期了,你怎么看?

虚拟客户端代码:

BTSocketSession.swift

main.swift

0 投票
1 回答
94 浏览

objective-c - 使用标志“-fobjc-arc”时出现分段错误

我在 Mac OSX 上使用 IOBluetooth 框架来进行设备发现。我NSLog()在回调函数内部添加了一些,所以我知道进度。

如果我像这样在命令行上用 gcc编译代码,一切正常(源文件f.m,输出a):

但是,如果我添加一个-fobjc-arc标志来确保自动引用计数:

编译仍然可以,但执行文件./a会导致段错误:

或永远挂在那里:

有时它挂起,有时它出现故障。行为不一致。如果我不添加-fobjc-arc标志,一切都会按预期工作(至少在表面上)。

所以我的问题是,为什么在我添加-fobjc-arc标志后它的行为方式是这样的?

如果有帮助,完整的源文件在这里:

如果有人想知道,我的目标是生成一个用于 JNI 项目的动态库,不涉及 GUI。这是我尝试在 Mac 上获得一些蓝牙方式的经验,并让自己熟悉 Objective-C。我来自 Linux 背景,所以如果可能的话,我更喜欢留在命令行上。

提前致谢。