适用于 OS X 的虚拟 HID 键盘

2024-02-24

我正在尝试创建一个虚拟的蓝牙Mac 操作系统的键盘客户端。这意味着我的 Mac 将充当 BT KB。我读到了 OS X 中的蓝牙 API(在 ObjC 中),并且我还发现了适用于 Mac 的 HID API(在 C 中)

为了完成这项工作,我知道我需要声明一个 hid-keyboard-service,该服务应该在 SDP 查询上广播。

  1. 如果我使用 HID API 声明 HID 服务,我的服务是否也在蓝牙上可见/广播? (这些文档似乎仅针对 USB 提及 HID)。 - HID 服务在蓝牙和 USB 接口上都可见,并且底层连接对我来说是透明的吗?
  2. 您知道有什么代码可以帮助我解决这个问题吗?我更喜欢 ObjC,但似乎 HID API 仅限于 C...:(

谢谢...!


据我了解,HID 设备驱动程序代表操作系统本地的设备,也代表操作系统本地的各种其他组件的设备。它不用于在 USB 或蓝牙上“广播”。据我所知,OS X 不包含蓝牙 HID 服务,OS X 和 Mac 中的 USB 芯片组都不支持 USB 设备模式——或者至少不公开它。

您将需要编写一个蓝牙服务。我没有这样做,但是文档 http://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/Bluetooth/BT_Develop_BT_Apps/BT_Develop_BT_Apps.html看起来很广泛。据我了解,您必须以某种方式基于底层蓝牙 L2CAP 传输协议来实现 HID 服务。

由于我既没有研究过蓝牙,也没有研究过Mac下的蓝牙支持,所以我无法提供更多帮助。我确实查看了 HID 协议规范,甚至还使用了它们。 HID 的实现相对简单,但首先要实现蓝牙服务需要做相当多的工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适用于 OS X 的虚拟 HID 键盘 的相关文章

随机推荐

  • extjs 与 Node.js 后端?

    是否有任何项目 示例 教程等可以展示 ExtJS 与 Node js 作为后端的使用 我正在专门研究多个用户的实时协作 但任何将 ExtJS 和节点结合在一起的东西都会有所帮助 Here http www alsonkemp com gee
  • Elixir 或 Erlang 程序可以编译为独立的二进制文件吗?

    它说 Elixir 有一个工具叫做elixircErlang 有一个工具叫做erlc to 编译模块 http elixir lang org crash course html elixir用来 在此之后 您可以立即运行代码elixir命
  • 检测按下哪个键[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我如何知道
  • 未命中断点 Mono For Android (Monodroid)

    我的 monodroid 应用程序构建并运行良好 但未命中断点 这适用于物理设备和模拟器 我创建了一个新的默认 monodroid 应用程序 它确实遇到了断点 我尝试过重建 重新启动 ADB 和重新启动 我运行的是 VS2010 M4A 版
  • Firebase Google Cloud 从设备到设备的消息传递

    我无法理解如何将消息从 iOS 设备发送到另一台 iOS 设备 并试图了解两者之间的区别 Firebase 通知和 Google Cloud Messaging Firebase 通知假设您可以从服务器向设备发送消息 谷歌云消息 它将消息从
  • ElasticSearch:根据字段长度过滤文档

    我在 SO 上读到了几个类似的问题 并建议解决方案不起作用 我想找到单词短于8的所有字段 我的数据库屏幕 我尝试使用此查询来执行此操作 query match all filter script script doc word length
  • Cordova iOS 6.1.1 白色启动画面

    在我的 Cordova 应用程序中 升级到 cordova ios 6 1 1 后遇到问题 应用程序运行正常 但未显示启动屏幕 只有一个白屏 就像我的闪屏文件被忽略一样 我有这个 config xml 文件
  • 如何处理`已被弃用。在 Java 中已弃用?

    我想使用的代码 window addFlags WindowManager LayoutParams FLAG SHOW WHEN LOCKED 有FLAG SHOW WHEN LOCKED https developer android
  • 关闭 OpenMP

    在我的 C 程序中 我希望有时使用 OpenMP 有时不使用 OpenMP 即多线程或单线程 来运行其可执行文件 我正在考虑以下两种情况中的任何一种 我的代码如何使用 OpenMP 1 假设我的代码只有 include
  • 无法为 jasmine 设置超时

    我已经尝试了所有解决方案这个答案 https stackoverflow com questions 9867601 how do i change the timeout on a jasmine node async spec但他们都不
  • Spring Mvc 中从控制器返回 Hashmap 到 JSP

    我在 Jsp 中有两个下拉列表 一个用于州 另一个用于国家 一旦我选择国家 地区 国家列表就会自动填充相应的列表 但我得到整个 jsp 页面作为 ajax 调用的响应 我的ajax程序 select country change funct
  • 为什么图像没有保存在我的代码中而只是由管理页面保存?

    我需要知道为什么图像不保存在路径中 我从路径中检查 静态根和媒体根似乎都工作良好 但图像未保存 这里是代码 您可以在其中看到发生了什么 notice 该图像工作正常 并已通过管理页面安装 但无法保存或通过我的代码工作 模型 py class
  • Power Query M - 表达式错误 - 列表到文本

    我正在使用 Web Contents 执行 API 请求 我提交了一个从函数获取的动态访问令牌 let Source Json Document Web Contents https api url com endpoint id Head
  • 捕获蓝牙远程快门事件

    我想知道如何 是否可以在 android 中捕获由蓝牙远程快门事件触发的事件 例如这样的一个 http www avancaproducts com en shop other bluetooth camera shutter remote
  • 在 docker 中运行 json-server

    我一直在跑步json 服务器 https github com typicode json server使用以下配置在 docker 容器中成功运行了一段时间 泊坞窗文件 FROM node alpine EXPOSE 3000 COPY
  • 在自定义 UIGestureRecognizer 中实现速度

    我编写了一个自定义 UIGestureRecognizer 它可以用一根手指处理旋转 它的设计工作方式与 Apple 的 UIRotationGestureRecognizer 完全相同 并返回相同的值 现在 我想实现速度 但我无法弄清楚苹
  • 我应该使用 XSD 1.1 来构建开放标准吗?

    我们被要求为开放 XML 标准整合一组模式 XSD 1 0 可以处理大多数规则 但在某些地方会有点混乱 特别是考虑到可扩展性 它还依赖于实现者以注释的形式阅读某些规则的自由文本描述 几乎所有规则都可以使用 XSD 1 1 来实现 但是我们不
  • Java不发送客户端证书

    我在 Java 1 7 上使用 HttpClient 4 2 3 连接到 nginx 托管的远程服务器 我的组织广泛使用 PKI 并且远程和客户端都具有由通用 CA 颁发的证书 服务器有一个如下的签名链 CN Server 123 OU S
  • .NET 中泛型集合和非泛型集合之间的内存使用差异

    我读到收藏品如今在 NET 中 众所周知 使用有一些优点通用集合 over 非通用的 它们是类型安全的 没有转换 没有装箱 拆箱 这就是通用集合具有性能优势的原因 如果我们认为非泛型集合将每个成员存储为object 那么我们可以认为泛型也具
  • 适用于 OS X 的虚拟 HID 键盘

    我正在尝试创建一个虚拟的蓝牙Mac 操作系统的键盘客户端 这意味着我的 Mac 将充当 BT KB 我读到了 OS X 中的蓝牙 API 在 ObjC 中 并且我还发现了适用于 Mac 的 HID API 在 C 中 为了完成这项工作 我知