CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 6 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 17 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Varioflex con ben 58 Thanks ricevuti nell'ultimo mese

NEWS DAL BLOG:
Pagina 1 di 3 123 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 22
Discussione:

[GUIDA] [editing] TOUCH GESTURE script

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    [GUIDA] [editing] TOUCH GESTURE script

    INTRODUZIONE

    Questa guida ha lo scopo di mostrare come creare ed editare lo script messo a disposizione da Tungstwenty di XDA (il cui funzionamento è già descritto in questo thread) utile per attivare la funzionalità touch gesture da lui stesso implementata per la prima volta su Siyah kernel con la versione 4.1.x.

    È una guida specifica x l'S2 ma con i dovuti accorgimenti può essere usata per tutti i dispositivi per i quali vengono sviluppati kernel che supportano le gesture

    Quanto segue non è la traduzione di una guida ufficiale preesistente ma il frutto delle mie ricerche in internet sull’argomento, dei miei test e dei confronti con gli altri utenti del forum; quindi alcune informazioni presenti potrebbero non avere riscontro altrove.



    LO SCRIPT

    Lo script di esempio fornito da Tungstwenty è uno zip flashabile al cui i interno, nel path system/etc/init.d/, troviamo il file S50GestureAction. Questo file è lo script che andremo a modificare o a spstituire, e si occupa di aggiornare al momento del reboot una serie di informazioni indispensabili per il corretto funzionamento delle GESTURE.

    Si può usare questo stesso script come base di partenza per la creazione di uno personalizzato.



    CONVENZIONI

    Per evitare confusione nell'utilizzo dei termini, da questo momento in poi, in maniera del tutto arbitraria, definiamo EVENTO l'insieme di uno o più tocchi e/o tratti tracciati con le dita sullo schermo, e FUNZIONE ciò che viene eseguito dal con un determinato evento. Quindi una GESTURE è definita tramite la coppia EVENTO-FUNZIONE.
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  2.  
  3. #2
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    EVENTI

    Bisogna tenere a mente due cose importanti:
    1. I tocchi sono comunque rilevati anche con qualsiasi applicazione attiva. Se un certo gesto dimostra di causare disturbo con le applicazioni reali, è il caso di cambiarlo in qualcosa di diverso o utilizzarlo solo in certe situazioni;
    2. Premendo 2 dita molto vicine tra loro lo schermo potrebbe rilevarne una sola. Questo potrebbe causare il fallimento di alcune gesture.

    Per assicurarsi di eseguire correttamente le gesture utilizzare il "puntatore Show location" ( Impostazioni --> opzioni sviluppatori --> mostra tocchi) in modo da essere in grado di monitorare ciò che il dispositivo rileva.

    Gli eventi attualmente gestiti sono presenti (e visualizzabili) all'interno del del file gesture_patterns nel path /sys/devices/virtual/misc/touch_gestures/, in cui è anche possibile visualizzare gli hotspot che definiscono il percorso che permette di attivare le gesture.

    Coordinate
    Con una risoluzione di 480x800 pixel, gli estremi dello schermo del Galaxy S2 sono rappresentati dalle seguenti coppie di coordinate:
    codice:
    	X: 0,0 - 479,0
    	Y: 0,799 - 479,799

    HotSpot
    Un HotSpot è un'area rettangolare dello schermo identificata tramite due coppie di valori che indicano rispettivamente le posizioni min_x, max_x, min_y, max_y, ed è un'area attraverso la quale il dito deve passare per eseguire correttamente un evento.
    Un HotSpot potrebbe copire anche l'intera area dello schermo, così come anche un solo pixel ma sono entrambe opzioni da evitare in quanto inutili (soprattutto la seconda). Per comodità gli hot spot dovrebbero avere dimensioni che si aggirano sui 150x150 pixel.

    Definizione dell'evento
    Possono essere definiti al massimo 10 EVENTI, ognuno dei quali è definito da almeno un dito che tocca due o più HotSpot; e fino a 10 dita che toccano un massimo di 10 HotSpot; definiti in questo modo:

    codice:
    gesture_num:dito_num:(min_x|max_x,min_y|max_y)
    gesture_num:dito_num:(min_x|max_x,min_y|max_y)
    Il tutto racchiuso tra le due seguenti linee di codice
    codice:
    echo "
    e
    codice:
    " > /sys/devices/virtual/misc/touch_gestures/gesture_patterns
    Quindi per esempio un dito che viene trascinato da sinistra verso destra nella parte alta dello schermo sarà definito dal seguente codice:
    codice:
    echo "
    
    # Gesture 1 - commento
    1:1:(0|150,0|150)
    1:1:(330|480,0|150)
    
    " > /sys/devices/virtual/misc/touch_gestures/gesture_patterns
    Ovviamente sconsiglio di creare delle GESTURE che rispondono a degli EVENTI così semplici, in quanto trasciniamo continuamente le dita da destra a sinistra dello schermo e l’evento sarà continuamente attivo. Quindi si può creare un EVENTO un po’ più complesso inserendo un secondo dito che fa lo stesso movimento (sinistra-destra) ma nella parte bassa dello schermo:
    codice:
    echo "
    
    # Gesture 1 - commento
    1:1:(0|150,0|150)
    1:1:(330|480,0|150)
    1:2:(0|150,650|800)
    1:2:(330|480,650|800)
    
    " > /sys/devices/virtual/misc/touch_gestures/gesture_patterns
    Per aggiungere il secondo evento, che per esempio sarà dato da tre dita trascinate dall’alto al basso sarà sufficiente quanto segue:
    codice:
    echo "
    
    # Gesture 1 – due dita da sinistra a destra una in alto l’altra in basso
    1:1:(0|150,0|150)
    1:1:(330|480,0|150)
    1:2:(0|150,650|800)
    1:2:(330|480,650|800)
    
    # Gesture 2 – tre dita dall’alto in basso
    2:1:(0|480,0|200)2:1:(0|480,600|800)
    2:2:(0|480,0|200)2:2:(0|480,600|800)
    2:3:(0|480,0|200)2:3:(0|480,600|800)
    
    " > /sys/devices/virtual/misc/touch_gestures/gesture_patterns
    Ultima modifica di mythra; 31-08-12 alle 19:03

  4. Il seguente Utente ha ringraziato mythra per il post:

    illuminato67 (09-09-12)

  5. #3
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    CREAZIONE "SEMPLICE" DI EVENTI
    Quanto segue è una guida che ho trovato sul forum xda creata da janreiviardo che spiega come creare in maniera semplice degli eventi:

    Come sappiamo la risoluzione dello schermo è 800 x 480. Quindi suddividendolo in quadrati da 160 x 160 apparirà così:

    Spoiler:


    Ogni quadrato è etichettato con suo corrispondente valore minimo e massimo delle coordinate x e y.

    Ad esempio se vogliamo creare una gesture che risponda alla lettera S.
    Spoiler:


    dovremo scegliere le coordinate in questo modo:
    Spoiler:


    Riferendosi alla prima foto, le coordinate saranno le seguenti:
    codice:
    1= 320|480,0|160
     2=0|160,0|160
     3=0|160,320|480
     4=320|480,320|480
     5=320|480,640|800
     6=0|160,640|800
    Quindi per creare il codice per la gesture 1 dovremo scrivere quanto segue:
    codice:
    # Gesture 1 - S
    1:1:(320|480,0|160)
    1:1:(0|160,0|160)
    1:1:(0|160,320|480)
    1:1:(320|480,320|480)
    1:1:(320|480,640|800)
    1:1:(0|160,640|800)
    Ultima modifica di mythra; 07-09-12 alle 04:17
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  6. Il seguente Utente ha ringraziato mythra per il post:

    iscio (07-09-12)

  7. #4
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    FUNZIONI

    Le funzioni permettono di simulare la pressione di un tasto, di invocare servizi e di avviare applicazioni sfruttando anche la API di Android.

    Così come per le AZIONI, anche il codice che gestisce le funzioni deve essere racchiuso tra delle specifiche righe di codice:
    codice:
    ( while [ 1 ]
    do
    
      GESTURE=`cat /sys/devices/virtual/misc/touch_gestures/wait_for_gesture`
    e
    codice:
    fi;
    
    done ) > /dev/null 2>&1 &
    la selezione della funzione da eseguire avverrà tramite una select...if...then che prevede questa sintassi:
    codice:
    if [ "$GESTURE" == "1" ]; then
    per la prima selezione, e
    codice:
    elif [ "$GESTURE" == "2" ]; then
    per tutte le altre.

    ICS e JB
    Alcune funzioni necessitano di particolari parametri a seconda della versione di Android su cui vengono eseguite, soprattutto in caso di Jelly Bean. È quindi utile inserire un controllo che verifichi su quale versione del SO si sta eseguendo lo script:

    codice:
    case "`getprop ro.build.version.release`" in
        4.1.* ) is_jb=1;;
        * )     is_jb=0;;
    esac
    La variabile is_jb permetterà di selezionare un diverso comando in caso ce ne sia bisogno.

    Pressione di un tasto
    Con lo script è possibile simulare la pressione di alcuni tasti, semplicemente usando il seguente codice:
    codice:
    input keyevent 26
    In questo casoil keyevent 26 simula la pressione del tasto power. Di seguito altri esempi di keyevent:
    codice:
    3 - HOME
    24/25 - Volume up/down
    26 - Power
    84 - Search
    85 - Media play/pause
    86 - Media stop
    87/88 - Media next/previous
    164 - Toggle volume mute
    187 or 214 - Recent apps
    220 - Voice search
    212/213 - Brightness up/down
    215 - App drawer
    La lista completa dei keyevent la trovate qua: KeyEvent | Android Developers.

    Come alternativa all'esecuzione dei keyevent, è possibile inserire degli scan-code a cui aggiungere un ritardo che simuli la pressione a lungo del tasto. Di seguito un esempio di tasto HOME premuto a lungo:

    codice:
    sendevent /dev/input/event1 1 102 1
    sendevent /dev/input/event1 0 0 0
    usleep 500000
    sendevent /dev/input/event1 1 102 0
    sendevent /dev/input/event1 0 0
    0

    Il codice 102 è rilevato come HOME ed avrà un ritardo di 500ms tra la pressione e il rilascio.
    Altri Scan-code per simulare i tasti fisici sono:

    codice:
    102 - Home
    116 - Power
    115 / 114 - Volume up / down
    Invocare servizi
    Ci sono alcuni servizi in esecuzione sul dispositivo, possono essere invocati utilizzando la seguente sintassi: "service call <name> <transaction> <params>".
    Di seguito una breve lista di chiamate ai servizi:
    chiamare un numero
    codice:
    service call phone 2 s16 "123456789"
    Abilitare/disabilitare bluetooth:
    codice:
    		service call bluetooth 1 | grep "0 00000000"
    		if [ "$?" -eq "0" ]; then
      		  service call bluetooth 3
    		else
    		    [ "$is_jb" -eq "1" ] && service call bluetooth 5
    		    [ "$is_jb" -ne "1" ] && service call bluetooth 4
    		fi

    Abilitare/disabilitare connessione dati:
    codice:
    		service call connectivity 18 | grep "0 00000000"
    		if [ "$?" -eq "0" ]; then
    		    service call connectivity 19 i32 1
    		else
    	   	 service call connectivity 19 i32 0
    		fi

    WiFi on/off:
    codice:
    		service call wifi 14 | grep "0 00000001"
    		if [ "$?" -eq "0" ]; then
    		    service call wifi 13 i32 1
    		else
      		  service call wifi 13 i32 0
    		fi
    Vibrazione:
    codice:
      		service call vibrator 2 i32 300 i32 0
    		usleep 600000
    		service call vibrator 2 i32 300 i32 0
    Expand / collapse status bar
    codice:
    service call statusbar 1
    e
    codice:
    service call statusbar 2


    Avvio di applicazioni
    Il comando "am" può essere usato per avviare applicazioni, molto simile a ciò che accade quando le loro icone vengono premuti nel programma di avvio. Ad esempio è possibile inserire questo codice per avviare l'applicazione fotocamera:

    codice:
    	result=`am start com.sec.android.app.camera/.Camera 2>&1 | grep Error`
    
    	[ "$result" != "" ] && result=`am start com.android.camera/.Camera 2>&1 | 	grep Error`
    
    	[ "$result" != "" ] && result=`am start 	com.android.gallery3d/com.android.camera.CameraLauncher 	2>&1 | grep 	Error`


    Feedback Tattile
    Per avere anche un feedback tattile (la vibrazione) che indichi la corretta esecuzione della gesture, è sufficiente aggiungere alla funzione la chiamata al servizio vibrator, così come segue:
    codice:
    service call vibrator 2 i32 100 i32 0
    che in questo caso sarà della durata di 100ms
    Ultima modifica di mythra; 07-09-12 alle 14:31
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  8. Il seguente Utente ha ringraziato mythra per il post:

    Fezza (04-01-13)

  9. #5
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    Analisi dello SCRIPT di Tungstwenty
    ...coming soon...
    Ultima modifica di mythra; 31-08-12 alle 19:13
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  10. #6
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    F.A.Q.
    coming soon
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  11. #7
    Androidiano


    Registrato dal
    Jun 2012
    Messaggi
    58

    Ringraziamenti
    24
    Ringraziato 2 volte in 2 Posts
    Predefinito

    Quote Originariamente inviato da mythra Visualizza il messaggio
    INTRODUZIONE

    Questa guida ha lo scopo di mostrare come creare ed editare lo script messo a disposizione da Tungstwenty di XDA (il cui funzionamento è già descritto in questo thread) utile per attivare la funzionalità touch gesture da lui stesso implementata per la prima volta su Siyah kernel con la versione 4.1.x.

    È una guida specifica x l'S2 ma con i dovuti accorgimenti può essere usata per tutti i dispositivi per i quali vengono sviluppati kernel che supportano le gesture

    Quanto segue non è la traduzione di una guida ufficiale preesistente ma il frutto delle mie ricerche in internet sull’argomento, dei miei test e dei confronti con gli altri utenti del forum; quindi alcune informazioni presenti potrebbero non avere riscontro altrove.



    LO SCRIPT

    Lo script di esempio fornito da Tungstwenty è uno zip flashabile al cui i interno, nel path system/etc/init.d/, troviamo il file S50GestureAction. Questo file è lo script che andremo a modificare o a spstituire, e si occupa di aggiornare al momento del reboot una serie di informazioni indispensabili per il corretto funzionamento delle GESTURE.

    Si può usare questo stesso script come base di partenza per la creazione di uno personalizzato.



    CONVENZIONI

    Per evitare confusione nell'utilizzo dei termini, da questo momento in poi, in maniera del tutto arbitraria, definiamo EVENTO l'insieme di uno o più tocchi e/o tratti tracciati con le dita sullo schermo, e FUNZIONE ciò che viene eseguito dal con un determinato evento. Quindi una GESTURE è definita tramite la coppia EVENTO-FUNZIONE.
    La proverò e ti farò sapere.

    Inviato dal mio GT-I9100 con Tapatalk 2

  12. #8
    Administrator L'avatar di Anna


    Registrato dal
    Jun 2011
    Messaggi
    36,731

    Ringraziamenti
    1,934
    Ringraziato 14,355 volte in 9,516 Posts
    Predefinito

    Ciao
    La guida è tua o devi aggiungere la fonte.... O sono io che non la trovo....?





    E 12 caratteri
    Sono un clown, e faccio collezione di attimi ....


    Sto guidando. (cit. DIEGUCCIO)

  13. #9
    Androidiano L'avatar di mythra


    Registrato dal
    Apr 2010
    Località
    Molfetta (BA)
    Messaggi
    86
    Smartphone
    Samsung Galaxy S II

    Ringraziamenti
    19
    Ringraziato 29 volte in 14 Posts
    Predefinito

    Quote Originariamente inviato da JacOcaJ Visualizza il messaggio
    Ciao
    La guida è tua o devi aggiungere la fonte.... O sono io che non la trovo....?





    E 12 caratteri
    ciao, la guida NON l'ho copiata/tradotta da altri forum o siti ma ovviamente ho preso spunto dal thread ufficiale di Tungstwenty su XDA che cito nelle prime righe

    EDIT.
    nel frattempo nel 3° post ho inserito una guda non mia
    Ultima modifica di mythra; 07-09-12 alle 04:18
    Terminale: Samsung Galaxy SII
    OS: Android 4.1.1
    ROM: JB AOKP i9100 - Multi-Utente
    KERNEL: Siyah Kernel v4.1.1 con Touch Gesture
    MODEM: M250S
    APPS: ssLauncher The Original v1.6.2, Extweaks Plus, Root Explorer.

  14. Il seguente Utente ha ringraziato mythra per il post:

    iscio (07-09-12)

  15. #10
    Administrator L'avatar di Anna


    Registrato dal
    Jun 2011
    Messaggi
    36,731

    Ringraziamenti
    1,934
    Ringraziato 14,355 volte in 9,516 Posts
    Predefinito

    Quote Originariamente inviato da mythra Visualizza il messaggio
    ciao, la guida NON l'ho copiata/tradotta da altri forum o siti ma ovviamente ho preso spunto dal thread ufficiale di Tungstwenty su XDA che cito nelle prime righe

    EDIT.
    nel frattempo nel 3° post ho inserito una guda non mia
    Perfect...





    E 12 caratteri
    Sono un clown, e faccio collezione di attimi ....


    Sto guidando. (cit. DIEGUCCIO)

Pagina 1 di 3 123 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy