Corso Base. ActionSMS. Maurizio Cozzetto, Francesco Sarasini



Documenti analoghi
Corso Base. Lezione 7. Maurizio Cozzetto, Francesco Sarasini

Programmazione Android. Luca Morettoni

Esercizi lezione 7. Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Pag. 1/9

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini

La geolocalizzazione

Android. Anatomia di una applicazione

Ciclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco

Android. Intent e intent-filter. diegozabot@yahoo.it

Tecniche di progettazione e sviluppo di applicazioni mobile

Modulo 5. Programmazione base in Android

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Lo sviluppo sarà diviso in passi incrementali. I file coinvolti ad ogni passo saranno indicati insieme alla descrizione del procedimento.

Sistemi Mobili e Wireless Android Primi passi

D3.7 Sviluppo di unità di test e report relativi ai moduli di interfacciamento tra il Portale di visualizzazione remota 3D e il MiddleWare.

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Services. Servizi. Componen8 che avviano operazioni in background. Specializzazioni della classe Context

1 JSPDynPage, componenti portale e Java Server Pages

Bluetooth Hacking. Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma. Javaday IV Roma 30 gennaio 2010

Corso Android New Edition Corso Online Programmatore Android New Edition

PRACTICAL DEVELOPMENT OF A WEB SERVICE

GESTIONE DEI PROCESSI

Corso di programmazione di sistemi mobile 1. Android. Google Cloud Messaging

Lezione 13 Content Provider

Guida I-Help App. Android

Definizione di metodi e tecniche per il testing di applicazioni Android Sensor Based

Corso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast

Strumenti per il testing di applicazioni in ambiente Android

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

Android. Sensori, permessi e feature.

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Compute engine generici in RMI

Socket & RMI Ingegneria del Software - San Pietro

MediaPlayer Android Mobile Programming Prof. R. De Prisco

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Introduzione ai Web Services Alberto Polzonetti

Modulo 4: Ereditarietà, interfacce e clonazione

Laboratorio di Amministrazione di Sistema (CT0157) parte A : domande a risposta multipla

PMF Integration Tools

[AD.AGIO] ANDROID SDK

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Programmazione. Android

Guida I-Help App. IOS

7.16 Funzioni ed FB gestione modem

Programmazione. Android

SOA!= OO. Andrea Saltarello Software Managed Designs S.r.l. andrea.saltarello@manageddesigns.it

-Fig.1-

Plus srl :: :: :: Via Morgagni, 4/A Verona :: Tel :: Fax

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Sistemi Mobili e Wireless Android Localizzazione utente

Java Remote Method Invocation

Introduzione ai connettori

Lezione 3 su Android: I button in Android

Corso Base. Lezione 5. Maurizio Cozzetto, Francesco Sarasini

Mail Cube Guida utente

Programmazione 2 - Marco Ronchetti. Fondamenti di Java. Fac.Scienze Università di Trento. Static

SIMPLY JOB. Progetto per il corso di Programmazione III e Laboratorio A.A Realizzato da: Massimo Buonocore

GERARCHIE RICORSIVE - SQL SERVER 2008

Corso sul linguaggio Java

Client e Server comunicano tramite il protocollo SOAP.

Creare client statici

UML: Aggregazione. class A { int s; public void sets(int){ }; public int gets() { }; class B {A ob; public void usea() { }; }

Protocollo SNMP e gestione remota delle apparecchiature

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Programmazione server-side: Java Servlet

1 EJB e Portal Component Object

Office Web Components in programmi C# da

Gestione della Grafica customizzata.

Outlook Express 6 Microsoft Internet Explorer, Avvio del programma Creare un nuovo account

Realizzazione di una semplice applicazione HelloWorld con una introduzione delle API di base del SDK Android.

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Polimorfismo parametrico vs polimorfismo per inclusione

Corso Base. Lezione 3. Maurizio Cozzetto, Francesco Sarasini

VIPA 900-2E641 PSTN VPN

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

Tecnologia e Applicazioni Internet 2011/12

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Telematica II 17. Esercitazione/Laboratorio 6

DATI IDENTIFICATIVI DEL PROGETTO

Indice generale. Capitolo 1 Introduzione ad Android... 1

RMI. Java RMI RMI. G. Prencipe

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Hosting Applicativo Upgrade Web Client

Corso Eclipse. Prerequisiti. 3 Window Builder

Linguaggi & Tecnologie Multimediali: TV interattiva e mobile TV

Java threads (2) Programmazione Concorrente

Esempio: Interfacce. Gioco Interfacce

Programmazione Concorrente e Distribuita

The Hitchhiker's Guide to testable code

Programmazione. Android

Esercitazione di Sistemi Distribuiti: Java RMI

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 Outline

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. Alessandra Zullo

FLEET MONITORING SCHEMA DI FUNZIONAMENTO

Transcript:

Corso Base ActionSMS Maurizio Cozzetto, Francesco Sarasini

Broadcast Receivers A broadcast receiver is a component that does nothing but receive and react to broadcast announcements (Intents). For a Broadcast Receiver to be enabled it needs to be registered. When registering a Broadcast Receiver you must use an Intent Filter to specify which Intents it is listening for.

Services The invisible workers of your application Android offers the Service class to create application components specifically to handle operations and functionality that should run invisibly, without a user interface.

ActionSMS: Argomenti trattati - Broadcast Receiver - Content provider - Activity - Service - Text To Speech - Text files - GPS Location - Device vibration -...

ActionSMS: Funzionalità - Lettura di un SMS in entrata tramite sintesi vocale - Esecuzione di compiti specifici indicati da remoto tramite SMS - Invio SMS

ActionSMS: Interfaccia

ActionSMS: Attesa di un SMS (1/4) <uses-permission android:name="android.permission.receive_sms" /> <uses-permission android:name="android.permission.read_sms" />... <receiver android:name="it.sarasini.android.actionsms.smsbroadcastreceiver"> <intent-filter> <action android:name="android.provider.telephony.sms_received" /> </intent-filter> </receiver>

ActionSMS: Attesa di un SMS (2/4) public class SMSBroadcastReceiver extends BroadcastReceiver { @Override public void onreceive(context context, Intent intent) { // Attenzione // ciò che viene effettuato qui va fatto velocemente! // leggo dal file di conf. se il servizio è abilitato ConfigFile config = new ConfigFile(context); if(!config.isenabled()) return;...

ActionSMS: Attesa di un SMS (3/4)... // Prendo il messaggio Bundle bundle = intent.getextras(); if(bundle == null) return; protocol data unit Object[] pduarray = (Object[]) bundle.get("pdus"); SmsMessage message = SmsMessage.createFromPdu((byte[])pduArray[0]);...

ActionSMS: Attesa di un SMS (4/4)... // lancio un servizio per gestire il lavoro Intent i = new Intent(); i.setaction("it.sarasini.android.actionsms.actionservice"); // Passo numero e testo del messaggio al servizio i.putextra( number, message.getoriginatingaddress()); i.putextra( text, message.getmessagebody().tostring()); } } if(context.startservice(serviceintent) == null) toast(impossibile avviare il servizio);

ActionSMS: Gestione di un SMS public class ActionService extends Service { @Override public int onstartcommand(intent intent, int flags, int startid) { // Prendo numero e testo che mi hanno passato Bundle extras = intent.getextras(); numero = extras.getstring( number ); testo = extras.getstring( text ); // Faccio qualcosa...... } } return START_STICKY;

ActionSMS: Sintesi vocale... extends Service implements OnInitListener { @Override public int onstartcommand(intent intent, int flags, int startid) { } tts = new TextToSpeech(getApplicationContext(), this);... @Override public void oninit(int status) { } } if(status == TextToSpeech.SUCCESS) tts.speak( Ciao, TextToSpeech.QUEUE_ADD, null);

ActionSMS: Dal numero al nome Uri rubrica = ContactsContract.PhoneLookup.CONTENT_FILTER_URI; Uri lookupuri = Uri.withAppendedPath(rubrica, number); Cursor idcursor = getcontentresolver().query(lookupuri, null, null, null, null); if(idcursor.movetofirst()) { int colonna = idcursor.getcolumnindexorthrow( ContactsContract.Contacts.DISPLAY_NAME); } String nome = idcursor.getstring(colonna); idcursor.close();

ActionSMS: Invio di un SMS <uses-permission android:name="android.permission.send_sms"/> String number = 123456789 ; String text = Ciao sono un sms! ; SmsManager smsmanager = SmsManager.getDefault(); smsmanager.sendtextmessage(number, null, text, null, null);

ActionSMS: Localizzazione GPS LocationManager locationmanager; String cls = Context.LOCATION_SERVICE; lm = (LocationManager) getsystemservice(cls); Location location = lm.getlastknownlocation(locationmanager.gps_provider); if(location == null) // Errore String lat = location.getlatitude(); String long = location.getlongitude();

ActionSMS: Good Vibrations String vibratorservice = Context.VIBRATOR_SERVICE; Vibrator vibrator = (Vibrator)getSystemService(vibratorService); // Vibra per 4000 ms vibrator.vibrate(4000);

ActionSMS: Dimostrazione