diff options
| author | Michael Wright <michaelwr@google.com> | 2013-08-19 15:55:38 -0700 |
|---|---|---|
| committer | Michael Wright <michaelwr@google.com> | 2013-08-19 17:06:03 -0700 |
| commit | b7b2d4b490f5dd672e0b00ced579dc052e3637e9 (patch) | |
| tree | 35a71da019d22046f57633a6513cf93ad51f9f59 /core/java/android | |
| parent | b6c38e9de1a2824ce599d7074fa4a226926177c1 (diff) | |
| download | frameworks_base-b7b2d4b490f5dd672e0b00ced579dc052e3637e9.zip frameworks_base-b7b2d4b490f5dd672e0b00ced579dc052e3637e9.tar.gz frameworks_base-b7b2d4b490f5dd672e0b00ced579dc052e3637e9.tar.bz2 | |
Expose API to query devices for supported keys
Change-Id: I29f230e19c6f851b4b72b2fc8dd41f5abcba4631
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/hardware/input/InputManager.java | 20 | ||||
| -rw-r--r-- | core/java/android/view/InputDevice.java | 10 |
2 files changed, 29 insertions, 1 deletions
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index 761faaf..30e69a6 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -579,15 +579,33 @@ public final class InputManager { * @hide */ public boolean[] deviceHasKeys(int[] keyCodes) { + return deviceHasKeys(-1, keyCodes); + } + + /** + * Queries the framework about whether any physical keys exist on the + * any keyboard attached to the device that are capable of producing the given + * array of key codes. + * + * @param id The id of the device to query. + * @param keyCodes The array of key codes to query. + * @return A new array of the same size as the key codes array whose elements are set to true + * if the given device could produce the corresponding key code at the same index in the key + * codes array. + * + * @hide + */ + public boolean[] deviceHasKeys(int id, int[] keyCodes) { boolean[] ret = new boolean[keyCodes.length]; try { - mIm.hasKeys(-1, InputDevice.SOURCE_ANY, keyCodes, ret); + mIm.hasKeys(id, InputDevice.SOURCE_ANY, keyCodes, ret); } catch (RemoteException e) { // no fallback; just return the empty array } return ret; } + /** * Injects an input event into the event system on behalf of an application. * The synchronization mode determines whether the method blocks while waiting for diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java index f43e4ab3..afc7b3e 100644 --- a/core/java/android/view/InputDevice.java +++ b/core/java/android/view/InputDevice.java @@ -574,6 +574,16 @@ public final class InputDevice implements Parcelable { } /** + * Gets whether the device is capable of producing the list of keycodes. + * @param keys The list of android keycodes to check for. + * @return An array of booleans where each member specifies whether the device is capable of + * generating the keycode given by the corresponding value at the same index in the keys array. + */ + public boolean[] hasKeys(int... keys) { + return InputManager.getInstance().deviceHasKeys(mId, keys); + } + + /** * Gets information about the range of values for a particular {@link MotionEvent} axis. * If the device supports multiple sources, the same axis may have different meanings * for each source. Returns information about the first axis found for any source. |
