diff options
author | Mike J. Chen <mjchen@google.com> | 2014-01-27 17:59:07 -0800 |
---|---|---|
committer | Mike J. Chen <mjchen@google.com> | 2014-01-27 17:59:07 -0800 |
commit | b8e4250de151551d5dacca895e62761355839d7d (patch) | |
tree | 48af2cf3f974f73be9c223b71370b1e21037510f /src/com/android/bluetooth/hid | |
parent | 955eb8b136c3c2dff5a5d550efe00c04e1b37314 (diff) | |
download | android_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-x | src/com/android/bluetooth/hid/HidService.java | 28 |
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); |