Android, event inject:
by emuboy on Jun.08, 2009, under Post
Da un pò di giorni sto pensando a come comandare il mio htc g1 da remoto quando sono in macchina,quindi mi sono messo di lena e ho setacciato il sistema operativo, e ho trovato due comandi utilissimi:
getevent
sendevent
getevent sniffa i dati provenienti da tastiera, touchscreed, trackball (!) e compasso e li restituisce in esadecimale.
sendevent esegue l’inject dei comandi nel sottosistema di controllo permettendovi di emulare tutte le periferiche su citate.
ho trovato la maggiorparte delle informazioni qui .Da qui ho poi scritto un piccolo batch, lo dovete lanciare dal computer con adb funzionante:
Aprite un file e rinominatelo .sh (in questo caso anche un chmod +x serve )o bat in base a che sistema operativo usate, e copiateci dentro questo:
adb shell sendevent /dev/input/event3 1 46 1
adb shell sendevent /dev/input/event3 1 46 0
adb shell sendevent /dev/input/event3 1 23 1
adb shell sendevent /dev/input/event3 1 23 0
adb shell sendevent /dev/input/event3 1 30 1
adb shell sendevent /dev/input/event3 1 30 0
adb shell sendevent /dev/input/event3 1 24 1
adb shell sendevent /dev/input/event3 1 24 0
dopo di che, aprite la tastiera e andate in un programma che vi permetta di scrivere e lanciate il bat, vedrete la scritta ciao comporsi.
Ma come vunziona? semplice:
adb shell sendevent /dev/input/event3 1 24 0
adb shell è palese dire….
sendevent è il comando che verrà eseguito sull shell
il primo 1 è il mode, il 24 è il keycode e l’ultimo 1 è il tasto premuto, dovrete ridare lo stesso comando con lo 0 per simulare la pressione del tasto.
bello eh? la domanda sorge spontanea…emu, e mo che ci fai? ordino il connettore per attaccarmi alla seriale e glieli faccio mandare all’arduino
emuboy, The Radical Dreamer... convinto che la vita vada vissuta nella sua pienezza, che vale sempre la pena di viverla...anche nei momenti peggiori...amante della natura umana e dello stupore che infonde il mondo...che trova in un raggio di sole tra le foglie l'armonia per un sogno...


June 9th, 2009 on 12:16 am
ahahah che figata!
… mh.. ma non ho capito come glieli mandi… sei attaccato via usb?
o via wireless?… del tipo facciamo partire le chiamate a caso xD
June 9th, 2009 on 11:28 am
sono comandi da console, puoi scriverli a mano col l’emulatore di terminale SUL telefono (ma in questo caso non funzionerebbero perchè non hai un programma aperto) oppure puoi creare un file .sh da avviare, in questo caso lo mando via usb, ma si può fare via wireless con una sessione ssh o telnet o si può fare da seriale (penso…)
June 10th, 2009 on 8:21 am
ovvero: tocco tocco il touch, senza lasciare ditate
August 31st, 2009 on 5:16 pm
[...] emuboy on Aug.31, 2009, under Post Lo so che ho già trattato questo argomento in precenza, ma in forma differente, il fatto è che getevent e sendevent sono dei comandi molto veloci ma hanno [...]