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

Android 如何确定输入设备是外部的,android,Android,我正在寻找一种识别外部输入设备的方法 我注意到[InputDevice]类的Android API有一个名为[isExternal]的函数。但当我尝试使用它时,它告诉我它无法解析方法。我检查了联机API参考,注意到该函数不存在。所以我想知道为什么函数在API中,而不是在线参考中 参考: isExternal是一种隐藏方法,无法通过SDK访问。但是,您仍然可以使用java反射调用它 public boolean isExternal(InputDevice inputDevice) { t

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

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

参考:
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;
    }
}

来源:

您是否发现了在不使用反射的情况下检查的可能性?由于Android api 29,此方法在不使用反射的情况下完全可访问:)