Each headset manufacturer fiddles with Bluetooth, and there is no public Android API call to connect, which is the first obstacle.
You need to use a bit of reflection to call the createInsecureRfcommSocket that opens the data connection when the iControlPad is in SPP mode:
http://code.google.c...Device.java#146http://code.google.c...Device.java#203 Once you have a connection, you can read/write data using the resulting socket and getInputStream() / getOutputStream().
You can read about the format used here:
http://www.icontrolp..._operations.pdf(Scroll down to "Using SPP mode")
I would recommend that you use "auto report mode" instead of polling,
but your app logic may lend itself to polling.
If you have a new Android device, maybe you are lucky enough to have the HID profile for Bluetooth, and in that case you can just use it as a regular keyboard (with fewer buttons of course).
But if you want to sell you app, 90%-95% of Android users have no support for HID, so you have to deal with the low-level SPP data.
This works on almost all Android devices 2.0+ (I know of no way to get it working on LG devices).
Regards, Kenneth