App_Texting, inviare messaggi SMS

Componente non visibile che consente di inviare e ricevere messaggi di testo. Questa applicazione mostra l’utilizzo del componente Texting per l'elaborazione e l’invio di testo SMS. Da un ListPicker l’utente può scegliere un messaggio predefinito, dopodiché facendo click su di un pulsante, questo messaggio viene inviato ad una lista di numeri telefonici. A termine invio appare il messaggio di conferma, dopo 10 secondi è di nuovo possibile inviare messaggi.
Componenti e proprietà da assegnare:

Componente

Gruppo

Nome

Proprietà

Text

ListPicker

Basic

lpSceltaMessaggi

Scelta messaggio

Fill Parent

ElementsFromString = Invito alla festa di compleanno, Buon Natale e felice anno nuovo, Ti ricordo appuntamento di domani

Label

Basic

lTestoMessaggio

Fill Parent –Height 60

Button

Basic

bInviaSMS

Invia SMS

Fill Parent

Texting

Social

Texting

Clock

Basic

Clock

TimeInterval = 1000

Come dovrebbero presentarsi la pagina Design e l’Emulatore nell’utilizo:

Aprire Blocks Editor
Nel ListPicker (lpSceltaMessaggi) è già stata definita la lista messaggi fra i quali scegliere quello da inviare.
Viene definita la variabile NumeriTelefonici e creata una lista per i numeri telefonici.

Ora viene programmato il ListPicker che contiene i messaggi.
Dopo la scelta (AfterPicking) il messaggio viene messo a video inserendolo nella Label lTestoMessaggio.Text
Tutto è pronto e il messaggio può essere selezionato per l’invio.
Quando il messaggio sarà stato selezionato, esso si troverà a video come contenuto della Label
lTestoMessaggio.Text e potrà essere inviato facendo click sul pulsante bInviaSMS.
A termine invio, a inoltro eseguito correttamente, verrà stampato a video il messaggio.
Questo messaggio rimarrebbe a video fino alla chiusura dell’applicazione.
Per ovviare a questo viene programmato il componente clock.
Valendosi del Clock, dopo 10 secondi viene vuotata la Label lTestomessaggio.Text e resettato il tutto.
Per utilizzare il Clock occorrono due variabili, una per accendere/spengere la sua lettura del Clock ed un’altra per contare i secondi prima del reset dell’applicazione.

Vengono asemblati i blocchi per l’invio del messaggio alla lista di numeri compilata in precedenza.
Questo invio avviene al click sul pulsante bInviaSMS.
Al click la prima cosa da fare è testare che non ci sia già un invio in corso, ad esempio l’utente ha premuto erroneamente più volte il pulsante Invia SMS.
Nel caso non ci siano invii in corso, viene prelevato il testo del massaggio dalla Label
lTestoMessaggio.Text ed inserito nella proprietà Testing.Message, del componente Texting.

Poi viene scorsa tutta la lista con foreach ed ogni numero letto inserito nella proprietà PhoneNumber.
Utilizzando foreach, la quantità dei numeri presenti nella lista è, per questa operazione, irrilevante.
La lista sarà sempre scorsa tutta e per ogni numero inviato il messaggio.
Subito dopo con il metodo Testing.SendMessage, inviato il messaggio di testo.
Al termine degli invii, viene messo a video il messaggio che l’inoltro è avvenuto correttamente,
Cambiando il valore della variabile SecondiDiAttesa cambia il tempo di attesa prima di un nuovo ciclo.
Viene poi settata su True (vero) la variabile LeggeClock ed immediatamente inizia la lettura.

Con il componente Texting i messaggi di testo, oltre ad essere inviati, possono anche essere ricevuti, e personalizzato il modo di riceverli.
Ogni telefono fa questo, ma non lo fa al punto con cui è possibile spingersi con la programmazione.
Per esempio, all’arrivo di un SMS, è possibile lanciare una qualsiasi altra applicazione, oppure anche un’applicazione specifica per il numero di telefono dal quale è stato ricevuto l’SMS.