summaryrefslogtreecommitdiffstats
path: root/src/com/android/bluetooth/hid
diff options
context:
space:
mode:
authorMike J. Chen <mjchen@google.com>2014-01-27 17:59:07 -0800
committerMike J. Chen <mjchen@google.com>2014-01-27 17:59:07 -0800
commitb8e4250de151551d5dacca895e62761355839d7d (patch)
tree48af2cf3f974f73be9c223b71370b1e21037510f /src/com/android/bluetooth/hid
parent955eb8b136c3c2dff5a5d550efe00c04e1b37314 (diff)
downloadandroid_packages_apps_Bluetooth-b8e4250de151551d5dacca895e62761355839d7d.tar.gz
android_packages_apps_Bluetooth-b8e4250de151551d5dacca895e62761355839d7d.tar.bz2
android_packages_apps_Bluetooth-b8e4250de151551d5dacca895e62761355839d7d.zip
HID: Hookup get_report_callback and return to Java via broadcast
Change-Id: I5ee7ea72935834ba8a19f7933bb92b8a0a24ba62 Signed-off-by: Mike J. Chen <mjchen@google.com>
Diffstat (limited to 'src/com/android/bluetooth/hid')
-rwxr-xr-xsrc/com/android/bluetooth/hid/HidService.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/com/android/bluetooth/hid/HidService.java b/src/com/android/bluetooth/hid/HidService.java
index 8f2051f37..77a3065fe 100755
--- a/src/com/android/bluetooth/hid/HidService.java
+++ b/src/com/android/bluetooth/hid/HidService.java
@@ -240,6 +240,15 @@ public class HidService extends ProfileService {
}
}
break;
+ case MESSAGE_ON_GET_REPORT:
+ {
+ BluetoothDevice device = getDevice((byte[])msg.obj);
+ Bundle data = msg.getData();
+ byte[] report = data.getByteArray(BluetoothInputDevice.EXTRA_REPORT);
+ int bufferSize = data.getInt(BluetoothInputDevice.EXTRA_REPORT_BUFFER_SIZE);
+ broadcastReport(device, report, bufferSize);
+ }
+ break;
case MESSAGE_SET_REPORT:
{
BluetoothDevice device = (BluetoothDevice) msg.obj;
@@ -545,6 +554,16 @@ public class HidService extends ProfileService {
mHandler.sendMessage(msg);
}
+ private void onGetReport(byte[] address, byte[] report, int rpt_size) {
+ Message msg = mHandler.obtainMessage(MESSAGE_ON_GET_REPORT);
+ msg.obj = address;
+ Bundle data = new Bundle();
+ data.putByteArray(BluetoothInputDevice.EXTRA_REPORT, report);
+ data.putInt(BluetoothInputDevice.EXTRA_REPORT_BUFFER_SIZE, rpt_size);
+ msg.setData(data);
+ mHandler.sendMessage(msg);
+ }
+
private void onVirtualUnplug(byte[] address, int status) {
Message msg = mHandler.obtainMessage(MESSAGE_ON_VIRTUAL_UNPLUG);
msg.obj = address;
@@ -593,6 +612,15 @@ public class HidService extends ProfileService {
if (DBG) log("Protocol Mode (" + device + "): " + protocolMode);
}
+ private void broadcastReport(BluetoothDevice device, byte[] report, int rpt_size) {
+ Intent intent = new Intent(BluetoothInputDevice.ACTION_REPORT);
+ intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
+ intent.putExtra(BluetoothInputDevice.EXTRA_REPORT, report);
+ intent.putExtra(BluetoothInputDevice.EXTRA_REPORT_BUFFER_SIZE, rpt_size);
+ intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+ sendBroadcast(intent, BLUETOOTH_PERM);
+ }
+
private void broadcastVirtualUnplugStatus(BluetoothDevice device, int status) {
Intent intent = new Intent(BluetoothInputDevice.ACTION_VIRTUAL_UNPLUG_STATUS);
intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);