Cerca con Google

Translate

31 maggio 2013

Tutorial 48 - Componenti PhoneNumberPicker, PhoneCall e Texting per effettuare chiamate ed inviare SMS


Tutorial Facile

Nel tutorial di oggi andremo a realizzare un applicazione "dimostrativa" che vi illustrerà abbastanza nel dettaglio l'uso dei componenti nella palette "social" per la gestione delle funzioni telefoniche del vostro smartphone.

Si analizzeranno quindi i componenti "PhoneNumberPicker", "PhoneCall" e "Texting" (per il componente texting potete andare a vedere anche gli altri due tutorial : Tutorial 43 - Invio SMS e Tutorial 45 - Ricezione di SMS)

Con questi componenti come avrete intuito sarà possibile selezionare un numero dalla rubrica del telefono, per poi decidere se si vuole effettuare una chiamata verso questo numero o se si preferisce inviare un SMS.
Lascio alla libera e grande fantasia dei miei lettori la scelta di possibili altre implementazioni di questi componenti (per esempio il testo degli sms può essere preso da una lista predefinita di frasi, oppure si può realizzare un app che chiami in caso di emergenza, magari usando il sensore di movimento, dei numeri di persone di fiducia, etc...)

Buona visione!!!


Il sorgente dell'applicazione è scaricabile da questo link
La discussione nel forum invece la trovate a questo link

Come sempre vediamo nel dettagli l'help dei due componenti utilizzati (per quello del texting vedete i precedenti tutorial), perdonate la qualità della traduzione :)

PhoneNumberPicker 
Questo componente permettere agli utenti di scegliere un numero di telefono da una lista di numeri di telefono memorizzati nei contatti del telefono Android. Quando l'utente clicca sul componente, viene visualizzato un elenco dei numeri di telefono dei contatti da scegliere. Dopo che l'utente ha fatto una selezione, le seguenti proprietà vengono impostate in base alle informazioni relative al contatto selezionato
Properties: 
Enabled 
-Se spuntato, l'utente può cliccare sul componente per aprire la rubrica. 
ContactName 
-Nome del contatto selezionato. 
EmaiAddress 
-Indirizzo di posta elettronica primario del contatto selezionato. 
PhoneNumber 
-Numero di telefono del contatto selezionato. Picture -Immagine del contatto selezionato.

Events: 
AfterPicking () 
-Evento generato dopo che l'utente sceglie un numero di telefono. 
BeforePicking () 
-Evento generato dopo che l'utente clicca il pulsante ma prima che venga visualizzata la rubrica. GotFocus () 
-L'elemento è attualmente a fuoco. 
LostFocus () 
-L'elemento non è più a fuoco. 
(GotFocus e LostFocus valgono solo se si utilizza un dispositivo di puntamento tipo un mouse, nel qual caso se la freccia è sopra il componente ho l'evento GotFocus, quando si sposta al di fuori ho l'evento LostFocus) 
Methods: 
Open () 
-Apre il PhoneNumberPicker, come se l'utente ci avesse fatto click sopra. 

PhoneCall 
Utilizzare questo componente per comporre il numero di telefono ed effettuare una chiamata. PhoneCall è un componente non visibile che fa una telefonata al numero specificato nella proprietà PhoneNumber che può essere impostata sia in Design Editor o in Blocks Editor. È possibile utilizzare il metodo MakePhoneCall per fare una telefonata dalla vostra applicazione.

Questo componente è spesso utilizzato con il componente PhoneNumberPicker, che consente all'utente di selezionare dai contatti memorizzati sul telefono ed imposta la proprietà PhoneNumber al numero di telefono selezionato. Per specificare direttamente il numero di telefono, impostare la proprietà con le cifre volute (ad esempio, "6505551212"). Il numero può essere formattato con trattini, punti e parentesi che vengono ignorati automaticamente. Non è possibile includere spazi nel numero. 

Properties: 
PhoneNumber 
-Il numero di telefono da comporre. 

Events: 
nessuno

Methods: 
MakePhoneCall () 
-Compone il numero specificato nella proprietà PhoneNumber.

15 commenti:

  1. Ciao Seb
    purtroppo visualizzo un errore che suppongo relativo al tipo di telefono che uso,
    ERROR 1107: THE SOFTWARE USED IN THIS APP CANNOT EXTRACT CONTACTS FROM THIS TYPE OF PHONE
    Io uso un samsung galaxy s2 ,

    RispondiElimina
    Risposte
    1. temo sia proprio come dici te, probabile che la customizzazione di Samsung per i contatti vada in conflitto con App Inventor e quindi non funzioni con esso, mi dispiace...

      Elimina
  2. Ciao, vengo ancora una volta chiedere il vostro aiuto, ho seguito il corso che funziona molto bene, ma vorrei il numero da chiamare è che il numero in una casella di testo.
    Per effettuare la chiamata ho la stessa cosa di te, la "Notifica" per la scelta, e dopo il "Notifier.AfterChoosing" = scelta dopo il "_If" nel test se la "scelta è =" sì "," allora fare "then-do è lì che mi sono bloccato, voglio il numero da chiamare il numero entra nel campo testo!, finalmente" PhoneCall1.MakePhoneCall "
    grazie

    RispondiElimina
    Risposte
    1. Volevo mandarti una foto del mio "Editor blocchi" ma qui non va

      Elimina
    2. Ciao, iscriviti nel forum, li puoi caricare le immagini cosi ti posso aiutare ciao

      Elimina
  3. Ciao Sebastiano Perfavore Aiutami Non mi da la Palette Other suff è l'altra di sotto Aiutami !!!

    RispondiElimina
    Risposte
    1. Stai usando il nuovo App Inventor, ovvero App Inventor 2?
      questi componenti li trovi sotto la palette "social"
      se sono altri componenti che cerchi dimmelo e ti indico dove li trovi in AI2 (ci metti cmq 2 minuti ad aprire tutte le palette e controllare da te...) :)

      Elimina
  4. ciao sebastiano io ho fatto tutto quello che dici nel video ma non mi da i contatti da scegliere nell' app

    RispondiElimina
    Risposte
    1. Che telefono usi, purtroppo phonenumberpicker non va su tutti i telefoni, in particolar modo so che ha problemi con i Samsung e gli Htc, non ci si può fare nulla purtroppo è una limitazione di AI.
      Se con il mio sorgente ti da lo stesso problema allora ti sei scontrato con questo tipo di limitazione, mi dispiace

      Elimina
    2. per ovviare a questo problema di compatibilità tra dispositivi non si potrebbe fare semplicemente una copia della rubrica e fare una app tipo quella nel tutorial 45. secondo si bypasserebbe, che ne pensi? però non saprei come fare. forse con il componente file che attraverso un percorso, a me sconosciuto, lo carica nel tinydb dell'app? è chiaro avresti in doppione della rubrica,ma almeno vai sul sicuro. fammi sapere se ho detto baggianate

      Elimina
  5. Ho anch'io problemi (il contatto non esiste !?); ho un LG5.
    Ci sono problemi con gli LG ?
    Grazie

    RispondiElimina
    Risposte
    1. non ho un LG quindi non posso provare, però è probabile, tutto quello che non è android stock da un pò di problemi con questi componenti...

      Elimina
    2. Per inviare o ricevere (leggere in una label) SMS , forse conviene usare activity ? Vedo che questo componente ha tante funzioni; io però non so indagare e oltre tutto non conosco l'inglese. Sai dirmi come posso risolvere? Grazie

      Elimina
  6. vorrei sapere per favore se con AI2 si possono inviare i toni dtmf ovvero una cosa del genere 12345,#,34#,3,4,# grazie

    RispondiElimina
  7. mi sapete dire, se è possibile iniziare la chiamata ad un numero, interromperla dopo +o - una decina di secondi,e poi rifare la chiamata allo stesso numero. In pratica il salto di un apparecchio risponditore , grazie.
    se è fattibile mi date qualche suggerimento ?

    RispondiElimina