Tag Archives: text

No text while driving

Aquest tutorial demostra com una aplicació pot respondre automàticament als missatges de text.Crearàs una aplicació que retorna una resposta quan es rep un missatge de text. La idea per a l’aplicació procedeix de l’estudiant Daniel Finnegan de la Universitat de San Francisco.emulator

Primers passos

Connecta’t al lloc web de App Inventor i comença un nou projecte. Nómbralo NoTextWhileDriving, i també el Title (títol) de la pantalla a NoTextWhileDriving. Obre l’editor de blocs i conéctalo al telèfon.

Introducció

Dissenyaràs l’aplicació perquè enviï una resposta per a qualsevol missatge rebut. També permetràs l’usuari personalitzar la resposta enviada.

Aquest tutorial introdueix els següents conceptes de App Inventor:

  • El component texting per enviar textos i processar els textos rebuts.
  • El component base de dades TinyDB per guardar el missatge personalitzat fins i tot quan es tanca l’aplicació.

Prepara els components

La interfície d’usuari per NoTextWhileDriving és simple: té una caixa de text per al missatge de resposta i un botó per enviar els canvis en el missatge. També necessitaràs un component texting i un component TinyDB, els quals apareixeran en l’àrea de components “no visuals”. A sota hi ha una taula amb instruccions detallades per al disseny dels components, però pots també construir-la a partir la la següent imatge de com haurien de quedar:

Els components que es mostren a continuació són els usats per crear la pantalla del dissenyador mostrada més amunt. Arrossega cada component des de la Paletadins el Viewer i nómbralos com s’especifica a continuació:

Tipus de component Grup de la paleta Com ho diràs Propòsit del component
Label Basic PromptLabel Informa l’usuari sobre el funcionament de l’aplicació
TextBox Basic MessageTextbox L’usuari introduirà la seva resposta personalitzada aquí
Button Basic SubmitResponseButton L’usuari fa clic aquí per enviar la resposta a la base de dades
Texting Social Texting1 El component que processarà els textos
TinyDB Basic TinyDB1 El component que emmagatzemarà la resposta a la base de dades

Ajusta les propietats dels components de la manera:

  • Canvia la propietat Text de PromptLabel a “The text below will be sent in response to all texts while this app is running.” (El text a continuació s’enviarà com a resposta a tots els missatges mentre l’aplicació estigui funcionant)
  • Canvia la propietat Text de MessageTextbox a “I’ma driving right now, I’ll contact you shortly”. (Estic conduint, et trucaré aviat)
  • Canvia la propietat Text de SubmitResponseButton a “Modify Response”. (Modificar la resposta)

Afegeix comportaments als components

NoTextWhileDriving té els següents comportaments:

1. Quan es rep un missatge, el text introduït en MessageTextbox s’envia com a missatge de text en resposta al remitent.

2. Quan l’usuari modifica el missatge personalitzat a MessageTextbox i fa clic SubmitResponseButton, el nou missatge es guarda de manera persistent a la base de dades del telèfon.

3. Quan s’inicia l’aplicació, el ​​missatge personalitzat es carrega des de la base de dades a MessageTextbox.

Responent a un missatge de text

Quan es rep un missatge al telèfon, l’esdeveniment Texting.MessageReceived és iniciat. El teu aplicació ha de manejar aquest esdeveniment ajustant les propietatsPhoneNumber i Message del component texting apropiadament i enviar text de resposta.

Necessitaràs els següents blocs:

Tipus de bloc Calaix Propòsit
Texting1.MessageReceived Texting1 el controlador d’esdeveniment que s’activa quan es rep un missatge de text
setembre Texting1.PhoneNumber to Texting1 Ajusta la propietat PhoneNumber abans d’enviar.
value number My Definitions aquest és el número de telèfon de la persona que va enviar el missatge
setembre Texting1.Message to Texting1 s’ajusta la propietat Message abans d’enviar
MessageText.Text MessageText És el missatge que l’usuari ha introduït.
Texting1.SendMessage Texting Envia el missatge.

Els blocs han de quedar així:

Com treballen els blocs

Quan el telèfon rep qualsevol missatge, l’esdeveniment Texting1.MessageReceived és activat. El número de telèfon del remitent està en l’argument number, i el missatge del remitent en l’argument messageText.

En resposta, l’aplicació envia un missatge de text al remitent. Per enviar un missatge, l’aplicació ajusta les dues propietats clau del component texting: la propietatPhoneNumber i la propietat Message. Texting.PhoneNumber s’ajusta al nombre del remitent, i Texting.Message s’ajusta al missatge de MessagetextBox – aquest pot ser, “I’ma driving right now, I’ll contact you shortly.”, (Estic conduint, et trucaré aviat) per defecte, o l’usuari també podrà modificar. Quan aquestes propietats estan ajustades, es diu a Texting1.SendMessage per enviar el missatge de resposta.

Prova el comportament. Necessitaras un segon telèfon per provar aquest comportament. Des del segon telèfon, envia un missatge de text al telèfon que està executant l’aplicació. Rep el segon telèfon el missatge de resposta? Si això funciona, prova a modificar el missatge de resposta i enviar un altre missatge des del segon telèfon. ¿S’ha enviat la nova resposta?

Emmagatzemar la resposta personalitzada

Fins ara l’aplicació funciona, però si la tanques i la tornes a obrir el missatge que has personalitzat s’haurà perdut. Per fer les coses d’una manera més convenient, emmagatzema la resposta personalitzada que l’usuari ha introduït en una base de dades utilitzant el component TinyDB.

TinyDB et proporciona dues bloc: StoreValue i GetValue. D’aquesta manera et permet emmagatzemar i etiquetar una peça d’informació, que més tard podràs recuperar.

Necessitaràs els següents blocs per emmagatzemar la resposta emmagatzemada:

Tipus de bloc Calaix Propòsit
SubmitResponseButton.Click SubmitResponseButton L’usuari fa clic en aquest botó per guardar el missatge de resposta
TinyDB1.StoreValue TinyDB1 emmagatzema el missatge de resposta a la base de dades del telèfon
text (“responseMessage”) Text és usat com a etiqueta per a les dades
MessageTextbox.Text MessageTextbox el missatge de resposta introduït per l’usuari aquí

Els blocs han de quedar així:

Com treballen els blocs

Quan l’usuari fa clic a SubmitResponseButton, l’aplicació emmagatzema la resposta introduïda a la base de dades. El text “responseMessage” és usat com a etiqueta per a identificar específicament la informació – més tard usaràs aquesta etiqueta per recuperar el missatge des de la base de dades.

Recuperant el missatge de resposta emmagatzemat

Programa el controlador d’esdeveniment Screen1.Initialize perquè la resposta personalitzada que s’ha emmagatzemat sigui recuperada des de la base de dades i col · locada en MessageTextbox. Comprova les dades recuperats per assegurar-te que contenen “alguna cosa” – després de tot, la primera vegada que s’usi l’aplicació, la base de dades no tindrà cap missatge guardat. Si hi ha un missatge guardat, col · loca en MessageTextbox perquè l’usuari pugui veure i que pugui ser usat per respondre als missatges entrants.

Necessitaràs els següents blocs:

Tipus de bloc Calaix Propòsit
def variable (“response”) Definitions Una variable temporal per emmagatzemar les dades recuperats
text (buit) Text El valor inicial de la variable pot ser qualsevol cosa
Screen1.Initialize Screen1 Aquest és activat quan s’inicia l’aplicació
setembre response to My Definitions canviessis la variable el valor recuperat de la base de dades
TinyDB1.GetValue TinyDB1 pren la resposta de text emmagatzemada a la base de dades
text (“responseMessage”) Text col · loca a la ranura tag de GetValue, assegura’t que el text és el mateix que es va usar en StoreValue above
if test Control per preguntar si el valor recuperat conté algun text
> Block Math comprova si la longitud del valor recuperat és> (major que) 0
length text Text comprova si la longitud del valor recuperat és més gran que 0
global response My Definitions aquesta variable manté el valor retornat des GetValue
number (0) Math per comparar amb la longitud de la resposta
setembre MessageTextbox.Text to MessageTextbox si recuperem alguna cosa, l’introduïu a MessageTextbox
global response My Definitions aquesta variable manté el valor retornat des GetValue

Els blocs han de quedar així:

Com treballen els blocs

Quan s’inicia l’aplicació, l’esdeveniment Screen1.Initialize és activat. L’aplicació crida a la base de dades TinyDB1.GetValue amb l’etiqueta (tag) “responseMessage” – la mateixa etiqueta usada quan almacenaste l’entrada de l’usuari anteriorment. El valor resultant es col · loca en la variable de resposta (response).

La variable de resposta s’usa perquè el valor rebut de la base de dades pugui ser comprovat. Si té una longitud de 0, llavors no hi ha una entrada a la base de dades amb l’etiqueta “responseMessage” – cosa que passarà la primera vegada que s’usi aquesta aplicació. Però si el missatge és més gran que 0, l’aplicació sap que una resposta ha estat emmagatzemada anteriorment, i el valor retornat pot ser col · locat en MessageTextBox qual cosa podrà veure l’usuari i s’utilitzarà com a resposta als missatges enviats.

Prova l’aplicació. Introdueix una nova resposta a MessageTextbox i fes clic a SubmitResponseButton. Llavors reinicia l’aplicació fent clic al botó Restart App a l’Editor de blocs. Això farà que l’aplicació es reiniciï tal com ho faria quan l’usuari tanca i torna a obrir l’aplicació més tard. Apareix el missatge personalitzat que has introduït?

No Text While Driving, programa final

Variacions

Quan tinguis l’aplicació No Text While Driving funcionant, potser vulguis explorar algunes variacions. Per exemple.

  • Crea una versió que llegeixi en veu alta els missatges rebuts. Necessitarà utilitzar el component TextToSpeech.
  • Crea una versió que permeti a l’usuari crear missatges personalitzats per nombres en particular.
  • Crea una versió que enviï respostes personalitzades partir de la ubicació de l’usuari (per exemple, Estic en uneixin església …)

Revisió

Aquestes són algunes de les idees examinades en aquest tutorial:

  • El component texting pot ser usat tant per enviar missatges com per processar els que es reben.
  • El component TinyDB s’usa per emmagatzemar informació de manera persistent, a la base de dades del telèfon, perquè estigui disponible cada vegada que s’iniciï l’aplicació.

Escaneja l’aplicació d’exemple per al teu telèfon

Escaneja el codi Qr amb el teu telèfon per instal · lar i executar l’aplicació d’exemple.

notextbarcode

Continua llegint

Etiquetat , , , , , , , ,
Design a site like this with WordPress.com
Per començar