Merge "Expose API to query devices for supported keys" into klp-dev

This commit is contained in:
Michael Wright
2013-08-22 21:08:02 +00:00
committed by Android (Google) Code Review
3 changed files with 30 additions and 1 deletions

View File

@@ -26139,6 +26139,7 @@ package android.view {
method public int getSources();
method public int getVendorId();
method public android.os.Vibrator getVibrator();
method public boolean[] hasKeys(int...);
method public boolean isVirtual();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator CREATOR;

View File

@@ -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

View File

@@ -573,6 +573,16 @@ public final class InputDevice implements Parcelable {
return mKeyCharacterMap;
}
/**
* 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