I researched about how to do it with Android device without using a PC side application. Bluetooth is using different type of protocols to communicate in short range devices. Bluetooth protocol stack is split as "controller stack" dealing with physical layer for send data and "host stack" dealing with high level data[0] [1]. In generic implementation host stack is a part of the OS. For devices like Bluetooth headsets and keyboards, host stack features are embedded with controller stack. According to the protocol stack [2], L2CAP protocol directly call to HCI and access controller stack. On top of that, SDP (service discovery protocol) allow devices to discover what services each other support (It has a list of supporting Bluetooth profiles [3] which are resides on top of the Bluetooth Core).
According to the Wiki page, the mandatory protocols are LMP,L2CAP and SDP. Android Bluetooth support wasn't a much matured one as mentioned in many forums and it implemented above protocols, but Android SDK doesn't give permission to add entries to the SDP and doesn't provide any functionality for the L2CAP Bluetooth protocol which is required for implement the Bluetooth HID profile. A Bluetooth HID implementation for Android called "Androhid"[4] also suffer from those issues. I also tries with few Android apps those are supported HID(Bluetooth Keyboard Easyconnect, BlueputDroid), but they also suffer from same fact.
Also Android provide mandatory RFCOMM protocol API and few other Bluetooth profiles [5] [6], but not HID profile. Other Android apps (Unified Remote, Ultimate Gamepad) are using PC side application (Most of them are using BlueCove java library to get the cross platform support) as a receiver to trigger events.
[0]. http://en.wikipedia.org/wiki/Bluetooth#Technical_information
[1]. http://en.wikipedia.org/wiki/Bluetooth_protocols
[2]. http://www.developer.nokia.com/Community/Wiki/images/e/ef/Protocol_stack.png?20070412054824 Bluetooth Protocol Stack
[3]. http://en.wikipedia.org/wiki/Bluetooth_profile
[4]. https://code.google.com/p/androhid/wiki/FAQ AndroHID
[5]. http://developer.android.com/guide/topics/connectivity/bluetooth.html
[6]. http://developer.android.com/reference/android/bluetooth/package-summary.html
Gihan Chanuka KarunarathneUndergraduate of Department of Computer Science and Engineering
--
The solution proposed is not deriving a solution out of Android but using a ready-made HID compliant USB stick and render any USB hub supported device the needed Bluetooth capability.
For this non-coding activity, anyone can buy those Bluetooth dongles (with HID profile) from big names like Broadcom/CSR etc.? Those dongles would anyway come already pre-qualified with all the necessary tests etc.
Just a thought.
Regards,
Jayanta K.
--
You received this message because you are subscribed to the Google Groups "android-platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
android-platfo...@googlegroups.com.
To post to this group, send email to
android-...@googlegroups.com.
Visit this group at http://groups.google.com/group/android-platform.
--
You received this message because you are subscribed to a topic in the Google Groups "android-platform" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-platform/8Re-DxeOj54/unsubscribe.
To unsubscribe from this group and all its topics, send an email to android-platfo...@googlegroups.com.
To post to this group, send email to android-...@googlegroups.com.
Visit this group at http://groups.google.com/group/android-platform.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "android-platform" group.
To unsubscribe from this group and stop receiving emails from it, send an email to android-platfo...@googlegroups.com.
To post to this group, send email to android-...@googlegroups.com.
Visit this group at http://groups.google.com/group/android-platform.
For more options, visit https://groups.google.com/d/optout.
--