【问题标题】:CBPeripheralManager limitationsCBPeripheralManager 限制
【发布时间】:2013-01-14 21:56:16
【问题描述】:

iOS 6 中新的 CBPeripheralManager 有哪些限制?如果我足够疯狂地实现 FTP(服务标识符 0x1106)配置文件,我能做到吗?还是 Apple 会限制应用可以公开哪些蓝牙服务?

https://github.com/KhaosT/CBPeripheralManager-Demo 似乎是新类型的一个很好的例子,但我不清楚目前支持多少,特别是因为 CBPeripheralManager 甚至在公共文档中都没有。

【问题讨论】:

  • 我想你可能在这里混淆了蓝牙和蓝牙 LE。 Core Bluetooth 框架仅适用于 LE 端。所有这些都完全开放供您使用,但 LE 没有像普通蓝牙那样的标准 FTP 服务。不过,您可以为 LE 创建自己的数据传输服务。
  • @BradLarson,是的,只是学习这些东西,所以肯定有点困惑。那么 HID over GATT 呢?听起来这是一个可以将 iPhone 用作指针或鼠标的事情。听起来对吗?
  • LE 端完全是应用程序级别的,而不是系统级别的,因此您可以通过 LE 为您的应用程序添加对 HID 指针等的支持,但它们不会在系统范围内执行任何操作。有一些对标准蓝牙 HID 的内置系统支持,例如键盘或盲文输入设备,但只有给定版本的 iOS 明确支持的那些,您无法对其进行任何添加。
  • 谢谢@BradLarson。这样就清楚了。话虽如此,Mac 或 Windows 笔记本电脑可能支持 BLE 的 HID over GATT 配置文件,在这种情况下,我可以将 iPhone 连接到笔记本电脑,作为 那个 系统上的鼠标设备。这个假设正确吗?
  • 我相信是的。从 iOS 6.0 开始,您应该能够在 iOS 设备上(或在 Mac 上的 iOS 模拟器中)模拟 LE 外围设备的各个方面。我自己没有尝试过,但我通过在 iPhone 上模拟其他 LE 设备的协议来模拟它们。

标签: ios ios6 core-bluetooth bluetooth-lowenergy


【解决方案1】:

@BradLarson 是解决这个问题的关键。感谢他在 cmets 中的所有帮助。我回答这个问题只是为了记录对后代所说的话,我认为这是对我可能措辞不佳的问题的回答。

CoreBluetooth iOS 框架允许应用程序开发人员使用蓝牙的低功耗版本Bluetooth LE。 BLE 包含一组不同的配置文件,因此 FTP 等服务不可用,尽管其他一些服务可用。该库应该足以实现这些配置文件。例如,应该可以实现HID over GATT

对于越狱设备,BTStack 库可用于连接蓝牙。

我发现对学习蓝牙非常有用的参考是An introduction to Bluetooth programming

【讨论】:

  • 您应该阅读 Apple 提供的本文档的第 3.11 节:developer.apple.com/hardwaredrivers/…。它包含一些可以通过 BLE 完成的限制。例如,低功耗蓝牙 HID 服务“由 iOS 内部实现,不得由第三方 iOS 应用程序发布”。当第三方 iOS 应用程序在配件上发现服务时,HID 服务(以及其他服务)“由 iOS 内部使用并从发现的服务列表中过滤掉”。
猜你喜欢
  • 2014-01-03
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-22
相关资源
最近更新 更多