2013-08-15 16 views
16

Lo so, posso ascoltare i dispositivi di input tramite /dev/input/eventx in Android/Linux. Se sei il superuser , puoi inviare un evento al dispositivo.Come posso creare un nuovo dispositivo mouse virtuale sul mio dispositivo Android?

Vorrei inviare eventi del mouse alla mia dispositivo Android come superutente , come TeamViewer su Windows o Linux, e ho bisogno di fare questo è con un mouse. Senza di esso, ottengo errore come Could not open /dev/input/event8, No such device durante l'invio di questo evento sendEvent /dev/input/event8 xxxx xxxx xxxxxxxx a /dev/input/event8, nodo creato con mknod /dev/input/event8 c 13 71

Questo problema può essere risolto collegando mouse Bluetooth al mio dispositivo. Il dispositivo viene creato automaticamente sotto /sys/devices/platform/tegra_uart.2/tty/ttyHS2/hci0 denominato hci0: 11 anche creare l'evento di input /dev/input/event7 (major 13 minor 71). Ora, posso inviare eventi a quel nodo e controllare il cursore del mouse Android. Ma non voglio essere connesso al mouse.

Qualcuno potrebbe suggerire come posso creare un dispositivo mouse virtuale sul mio dispositivo Android?

+2

dispositivo del mouse? O_O –

+0

Sì, ad esempio touchscreen ma senza dispositivo hardware reale. Voglio dire, dispositivo mouse virtuale. –

+0

@ErdemUYSAL Vedere http://lxr.free-electrons.com/source/Documentation/input/input.txt e anche il codice in driver/input/mouse /. –

risposta

12

Da quello che vedo è necessario creare il proprio dispositivo virtuale con il proprio autista, per fortuna c'è un modo semplice per farlo utilizzando uinput

V'è una guida semplice per iniziare here, e questo question può essere una buona guida per scrivere il proprio driver virtuale.

ho pensato che questo può essere fatto solo se si ha accesso al kernel, e creare il proprio (non credo che la modifica rom utente è una buona soluzione), ma dopo aver letto this, è chiaro che uinput può essere eseguito in modalità utente.

Nota:

Sono d'accordo con recommendition di utilizzare eventi di tocco; come questa soluzione è più comune e ha senso, verificare il secondo suggerimento è questo answer

+1

Ottima risposta. Voglio aggiungere che il dispositivo sparirà una volta che il programma termina.Sono stato in grado di creare un dispositivo di input e inviare eventi di input al file/dev/input/event *. –

+0

@LeonvanNoord grazie, felice di poterti aiutare, ma puoi essere più chiaro riguardo alle cose che spariscono dai dispositivi? solo per aiutare chi cerca questa risposta in futuro. – ProllyGeek

+0

Se il programma descritto nella parte 1 della [guida] (http://thiemonge.org/getting-started-with-uinput) termina in esecuzione, il dispositivo scompare. Non è più presente in/proc/bus/input/devices e anche il corrispondente/dev/input/event * scompare. –

Problemi correlati