eyalw
eyalw

Reputation: 740

Virtual HID-keyboard for OS X

I'm trying to create a virtual bluetooth keyboard client for Mac OS. that means my Mac will serve as a BT KB. I read about the bluetooth API in OS X (in ObjC), and I also found an HID API for Mac (in C)

To make this work I understand I need to declare an hid-keyboard-service that should be broadcasted on SDP queries.

  1. if I declare an HID service using the HID API, is my service visible/broadcasted on Bluetooth too? (the documents seems to refer to HID with regards to USB only). - are HID services visible on both bluetooth and USB interfaces, and the underlaying connection is transparent to me?
  2. is there any code that will help me with this you know about? I prefer ObjC, but it seems HID API is C only... :(

Thanks...!

Upvotes: 7

Views: 4288

Answers (2)

AXE Labs
AXE Labs

Reputation: 4551

It seems similar tools exist for linux and may have usable source code. See this thread for links.

Upvotes: 0

Ivan Vučica
Ivan Vučica

Reputation: 9679

As far as I understand it, a HID device driver represents a device locally to the OS, and by the OS, to various other components. It is not used to "broadcast" on USB nor on Bluetooth. As far as I know, OS X does not include a Bluetooth HID service, and neither does OS X nor the USB chipsets in Macs support USB device mode -- or at least they do not expose it.

You will want to write a Bluetooth service. I have not done that, but the documentation seems extensive. From what I understand, you would somehow have to implement your HID service based on the underlying Bluetooth L2CAP transmission protocol.

Since I have studied neither Bluetooth, nor Bluetooth support under Mac, I am unable to provide any more help. I did take a look at HID protocol specs, and even played with them. HID is relatively trivial to implement, but there will be quite a bit of work on implementing the Bluetooth service first.

Upvotes: 1

Related Questions