如何确定输入设备是外部的

时间:2017-10-03 06:03:53

标签: android

我正在寻找一种识别外部输入设备的方法。

我注意到[InputDevice]类的Android API有一个名为[isExternal]的函数。但是当我尝试使用它时,它告诉我它无法解决方法。我检查在线API参考,并注意该功能不存在。所以我想知道为什么API中的功能而不是在线参考。

参考: https://developer.android.com/reference/android/view/InputDevice.html https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/InputDevice.java

1 个答案:

答案 0 :(得分:4)

isExternal是一种无法通过SDK访问的隐藏方法。但是,您仍然可以使用java反射调用它。

public boolean isExternal(InputDevice inputDevice) {
    try {
        Method m = InputDevice.class.getMethod("isExternal");
        return (Boolean) m.invoke(inputDevice);
    } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
        e.printStackTrace();
        return false;
    }
}

来源:What does @hide mean in the Android source code?