Question

I'm new to android development and as a pet project I wanted to try and connect to an bluetooth device using the HID profile using an android phone. The phone I'll be using is the vibrant and according to samsung it doesn't support the HID Profile ( http://ars.samsung.com/customer/usa/jsp/faqs/faqs_view_us.jsp?SITE_ID=22&PG_ID=2&PROD_SUB_ID=557&PROD_ID=560&AT_ID=281257 ). Now my question is this, where does this "profile" reside? Is it on the hardware level or on the software level ( I assume the latter from other sources that I have read ). And if it is the latter, can HID implementation be created using RFCOMM communication over bluetooth (this is the only seemingly viable method I can see in the android bluetooth API).

I just want to make sure I understand the technology before I try and implement something that may not be possible.

Thanks in advance.

Was it helpful?

Solution

Since the HID profile is at the same level as the RFCOMM one, I don't think that you can implement the former on top of the latter.

Surely the HID profile is implemented in software, but in the Android stack this would be in a layer under the Java one. If I understood correctly, it has to be enabled at the kernel level (as the HID adds basically drivers).

Googling around I found this post, where this guy added the HID profile to the Android platform, playing around with some custom Android image and enabling some kernel feature (but mainly to be able to connect to some Apple product).

OTHER TIPS

If you have a look at the Bluetooth HID specs available here: http://www.dawidurbanski.pl/public/download/projekty/bluepad/HID_SPEC_V10.pdf , you will quickly learn that in order to connect to a HID device, and implement this profile, you will need to be able to open two L2CAP channels (Interrupt and Control).

L2CAP is not available on some HTC Android devices and on some Samsung devices.

However there is an Android application that has implemented the HID profile, including the L2CAP channels and the report descriptor parser, search for Teksoft Blueinput. It's reported to work on some devices only, based on the limitation I've presented above.

Unless Google implements a complete Bluetooth Stack and exposes it to developers, making this HID profile is not a trivial task.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top