Cerca con Google

Translate

19 febbraio 2014

Tutorial 3 - TalkToMe - Aggiunta componenti AccelerometerSensor , TextBox , TextToSpeech


Torniamo a parlare della nostra prima applicazione Android che avevamo realizzato con App Inventor,
chiamata TalkToMe (Tutorial TalktoMe parte 1 e Tutorial TalktoMe parte 2 se non li avete ancora seguiti ovviamente vi consiglio di farlo)

Nel tutorial di oggi andremo a vedere altri tre componenti abbastanza semplici che però permetteranno di amplicare le funzionalità della nostra app e sopratutto vi aiuteranno a capire sempre meglio come funziona App Inventor.


Il primo componente che inseriamo è chiamato "AccelerometerSensor" e ci permette di andare a "leggere" gli eventi relativi all'accelerazione a cui è sottoposto il nostro telefono, il componente è molto potente, ma in questo tutorial vedremo solo uno dei suoi eventi, per altre info potete consultare l'help ufficiale in inglese (http://appinventor.mit.edu/explore/content/sensors.html#AccelerometerSensor)

In pratica useremo il suo evento "Shaking" che viene generato ogni qual volta l'utente "scuote" il proprio cellulare (per questo tutorial non è possibile usare l'emulatore in quanto non esiste un modo semplice di emulare l'accelerometro tramite esso, dovrete quindi usare il vostro smartphone Android)

Per fare questo basta inserire il componente "AccelerometerSensor" e poi programmare il suo evento nel blocks editor nel seguente modo:

Come potete facilmente capire, allo "shake" del telefono, la nostra app pronuncerà il testo indicato sopra.
Ovviamente siete liberi di programmare qualsiasi altra azione da far compiere quando il telefono viene "shakerato", liberate la vostra fantasia!!!

La seconda aggiunta alla nostra app prevede invece l'inserimento di un campo testuale in cui l'utente potrà inserire liberamente una qualsiasi frase, alla pressione di un pulsante (Button) nella nostra app, il motore di sintesi vocale di Android (in inglese TTS o Text-to-Speech) pronuncerà con voce "naturale" la frase appena inserita.

Per fare questo dobbiamo inserire due nuovi componenti:
- una "TextBox" [palette User Interface] (http://ai2.appinventor.mit.edu/reference/components/userinterface.html#TextBox)
- Il componente "TextToSpeech" [palette Media] (http://ai2.appinventor.mit.edu/reference/components/media.html#TextToSpeech)

Il primo componente permette di far inserire all'utente una stringa di testo e di gestirla all'interno dell'app, vedrete che questo componente è fondamentale per la creazione della maggior parte delle app.
il secondo componente invece permette di far "parlare" il nostro smartphone.

Il codice da aggiungere alla nostra app sarà quindi questo:


In pratica programmiamo l'app per far si che quando l'utente clicca sul Button1 andiamo ad eseguire il metodo .Speak del componente TextToSpeech1 , il testo da pronunciare sarà preso dal contenuto della casella TextBox1 (che viene letta tramite la proprietà "TextBox1.Text")

Come avete visto tutto è ancora abbastanza semplice ma le cose si stanno facendo sempre più interessanti vero???

Se volete seguire questo tutorial in versione video lo trovate qui sotto


Per qualsiasi domanda, chiarimento o curiosità usate i commenti qui sotto o quelli di YouTube.

13 commenti:

  1. ciao sono nuovo di programmazione ti volevo chiedere una volta fatto il login alla mia app quando la chiudo come faccio a mantenere i dati di login cosa mi devo studiare

    RispondiElimina
    Risposte
    1. non ho capito la domanda? è pertinente con questo tutorial?
      ci sono vari modi di creare app con login e password, ti consiglio di discutere e cercare nel forum visto che l'argomento è già stato trattato.
      Ad esempio: http://seblogapps.blogspot.it/2011/10/tutorial-22-il-componente-tinydb-per-il.html
      Ciao

      Elimina
    2. grazie per la rapida risposta.
      essendo l'unico tutorial su ai2 mi sono permesso di postare quà.
      ho un database che interrogo tramite il componente web con posttext e php.
      Ho letto un po in rete che devo usare session_start(); per usare i coockie per ricordare se l'utente e loggato o no ma dove devo prendere queste info.

      Elimina
    3. nel browser funziona nella app sullo smartphone no.

      Elimina
    4. mi dispiace onestamente non ti saprei aiutare, puoi provare a postare la tua domanda sul forum, li ci sono un paio di persone veramente brave con php, forse ti possono dare una mano.

      Elimina
  2. Ciao, se è pertinente all'articolo del blog puoi chiedere nei commenti,
    altrimenti crea una nuova discussione nel forum e poi eventualmente mandami per mail il link alla discussione stessa,ciao

    RispondiElimina
  3. ciao seba...sono 2 mesi che sto cercando di imparare con i tuoi tutorial....sono semplicissi e bellissimi...e ti ringrazio vivamente...e son sicuro che se riuscissi a creare c ho che ho in mente con app inventor ti lascierò una auspica donazione...
    Detto c ho vorrei parlarti in privato su bluthooth...non ci capisco niente...come posso contattarti?!?!la mia email è danielesalvatori1989@gmail.com grazie in anticipo.
    buon lavoro.
    sei forte!

    RispondiElimina
  4. salve Sebastiano, volevo anzitutto ringraziarti per il lavoro che da un pezzo stai facendo, grazie a te ho fatto la mia prima app .... che mi aiuta nel mio lavoro di taxista, semplice ma utile sfruttando il navigatore e le tariffe comunali in modo tale che ogni utente si può calcolare il preventivo ed ovviamente chiamarmi. in tale app vorrei comunque fare in modo che appaia l'icona sulla barra in alto dello screen (accanto al nome della stessa app) ... non riesco a capire come fare. poi vorrei chiederti una cosa (senza farti arrabbiare :-) ho scoperto da poco android studio .... bella solo che non sono un programmatore ... non è che se la conosci puoi spiegare qualcosa? grazie di tutto.

    RispondiElimina
    Risposte
    1. Ciao, Android Studio è il tool ufficiale per programmare le app in Android e bisogna programmare tutto in java, non penso di fare tutorial in merito, è troppo complicato e si trova già molto in rete...

      Per l'altra richiesta, non capisco , si tratta solo di mettere un icona accanto al testo della tua app o che cosa? riesci a spiegarti meglio?

      Elimina
  5. Salve, sono un nuovo iscritto al blog, ho apprezzato molto il lavoro svolto fino adesso e lo ritengo non utile ma utilissimo per chi è alle prime basi come me. Mi sto cimentando in una nuova app tutta mia e sto trovando qualche difficoltà pertanto ve ne sarei grato se mi aiutate.
    Come da titolo sto cercando di inserire un suono o qualcosa di simile in mp3 quando, dopo aver impostato sulla mia app l'indirizzo ed esserci arrivato il cell mi avvisa con un suono o cose del genere. Ho gia creato una app in cui indico la strada, e poi con un tasto naviga arrivo a destinazione. Mi serve un aiuto per il resto. Grazie in anticipo

    RispondiElimina
    Risposte
    1. Ciao Vito,
      se la tua app "esce" perchè ad esempio hai lanciato il navigatore con l'activitystarter, non c'è modo di tornare in automatico indietro e quindi non puoi fare eseguire il suono come chiedi.
      Non sapendo bene come hai realizzato l'app mi è difficile aiutarti, però se hai usato l'activitystarter credo ci sia poco da fare purtroppo...

      Elimina