2017-10-03 1 views
0

Ich bin auf der Suche nach einer Möglichkeit, das Eingabegerät zu identifizieren, die extern ist.Wie zu bestimmen Eingabegerät ist extern

Ich bemerke, dass die Android-API für die Klasse [InputDevice] eine Funktion namens [isExternal] hat. Aber als ich versuchte, es zu benutzen, sagt es mir, dass es Methode nicht auflösen kann. Ich überprüfe die Online-API-Referenz und stelle fest, dass die Funktion nicht existiert. Also ich frage mich, warum ist die Funktion in der API aber nicht in der Online-Referenz.

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

Antwort

0

IsExternal Gibt ist eine versteckte Methode, die nicht zugänglich über das SDK ist. Sie können es jedoch weiterhin mit Java-Reflektion aufrufen.

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; 
    } 
} 

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

Verwandte Themen