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



Documenti analoghi
Android. Android03: Ciclo di vita di una Activity.

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

Android. Anatomia di una applicazione

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

Lezione 3 Le attività

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

Programmazione Android. Luca Morettoni

Esercitazione n 4. Obiettivi

Programmazione. Android

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

DOCENTI - guida web. 1 LOGIN E BACHECA.. Pag 2. 2 MODIFICARE LA PASSWORD... Pag CREARE UN ARTICOLO.. Pag INSERIRE LE FOTO.. Pag.

Oggetti Lezione 3. aspetti generali e definizione di classi I

Struttura di un programma Java

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Pratica guidata 6 Tablet

Invio SMS. DM Board ICS Invio SMS

Tecniche di progettazione e sviluppo di applicazioni mobile

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

Concetto di Funzione e Procedura METODI in Java

IL WIKI CON PBWORKS BREVE GUIDA ALL USO Il wiki Vedi alla voce: Auschwitz è stato creato utilizzando PBWorks, un servizio web che offre la

Lezione 3 Le attività

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Tale attività non è descritta in questa dispensa

Modulo 4: Ereditarietà, interfacce e clonazione

La geolocalizzazione

Object Oriented Programming

Manuale Utente MyFastPage

Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...).

Laboratorio di programmazione

Guida all uso del portale per il software Bilancio di previsione 2012

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

Guida all'uso del CMS (Content Management System, Sistema di Gestione dei Contenuti)

Registratori di Cassa

11 - Rilievo tridimensionale di un edificio con distanziometro senza prisma e restituzione dei prospetti in 2D

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

Windows. Cos è I componenti principali Le funzioni essenziali. 1

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Parola chiave extends

Inizializzazione, Assegnamento e Distruzione di Classi

Esercizi della lezione 5 di Java

Guido d uso sito internet Unione Valdera

Usare Skype e conoscere le sue opzioni. Dopo avere installato Skype, ho fatto clic sulla sua icona

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe È qualcosa che abbiamo già visto varie volte

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

<?php include './include/page.php';

Configurare TPTP in Eclipse e testare un applicazione

Circolari e lettere da Word con anagrafiche e indirizzi da Metodo

Istruzioni Archiviazione in Outlook 2007

Le variabili. Olga Scotti

INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

BACHECA CLIENTE/SERVER

IP CONTROLLER IPC-3008/ IPC-3108 IPC-3002 / IPC-3102

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Esempi di esercizi d esame

Realizzazione di una classe con un associazione

Esercizi di JavaScript

Cenni di programmazione distribuita in C++ Mauro Piccolo

GNred Ver1.5 Manuale utenti - Modulo diashow

Sistemi Mobili e Wireless Android Activity

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Corso Eclipse. Prerequisiti. 1 Introduzione

Laboratorio di Basi di Dati

MICROSOFT OFFICE WORD 2010 STAMPA UNIONE

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

1. Il Client Skype for Business

MUSEO&WEB. un area riservata (OTEBAC) Roma, 15 giugno 2010

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

Gestione Turni. Introduzione

CONTABILITA ON LINE GUIDA ALL USO PER COMITATI PROVINCIALI E REGIONALI INSERIRE IN PRIMA NOTA I RICAVI

Manuale Knowledge Base

Guida utente alla compilazione delle richieste di contributo on-line per le Associazioni dei Consumatori

ESTARWEB ISTRUZIONI SEZIONE DOCUMENTALE

TUTORIAL Il gridding e il contouring con ER Mapper. Pkm

TRASMISSIONE REPORTISTICA MENSILE. WEB SERVICE Descrizione procedura

Architettura MVC-2: i JavaBeans

Introduzione. Macro macro istruzione. Sequenza di comandi memorizzati programma

Olga Scotti. Basi di Informatica. File e cartelle

Iniziamo ad utilizzare LiveBox ITALIANO.


Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1

File, Modifica, Visualizza, Strumenti, Messaggio

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Versione 7.0 Taglie e Colori. Negozio Facile

Introduzione. AndreaMosaic Release Copyright Andrea Denzler Pagina 2 di 6

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

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

Sistemi Mobili e Wireless Android Primi passi

Aggiornamento programma da INTERNET

Manuale del Docente - Scienze Politiche

Registri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Transcript:

Android Intent e intent-filter diegozabot@yahoo.it

Intent

Cos è un Intent Un intent è una richiesta da parte di un componente di una funzionalità che viene implementata in un altro componente. Viene utilizzato per fare interagire le applicazioni tra di loro, sia quelle programmate che quelle già presenti nel sistema. Esempi: richiesta di una activity esterna per fare una fotografia richiesta di una activity esterna per effettuare una chiamata Gli Intent sono oggetti di tipo android.content.intent. Un intent utilizza un oggetto di classe Bundle per ricevere eventualmente dei dati.

Tipologie di Intent Possiamo utilizzare due tipologie di Intent: intent espliciti indichiamo esplicitamente la componente che vogliamo richiamare utilizzando la classe java Intent i = new Intent(context, class) intent impliciti indichiamo l azione che vogliamo eseguire e lasciamo che il sistema proponga come risolvere l azione Intent i= new Intent(action, Uri) *Uri: Uniform Resource Identifier. Stringa che identifica univocamente una risorsa (sito web, immagine, file, ecc.)

Intent espliciti Per far partire una activity si utilizza il metodo startactivity(intent) definito nella classe Context, da cui Activity estende. Per far partire la activity chiamata Activity2 usiamo la seguente sintassi: Intent i = new Intent(this, Activity2.class); startactivity(i);

Intent impliciti (1) Esempio 1: facciamo caricare una pagina web. Dobbiamo specificare l action (Intent.ACTION_VIEW) e l Uri (l indirizzo internet). Intent i = new Intent( Intent.ACTION_VIEW, Uri.parse( http://google.it ) ); startactivity(i); In questo modo non chiamiamo una specifica classe ma definiamo l intenzione vedere una pagine web, lasciando al dispositivo soddisfare la nostra intenzione. Ricordarsi di impostare nel manifest il parametro uses-permission di tipo android. permission.internet

Intent impliciti (2) Esempio 2: facciamo partire una chiamata dalla nostra applicazione. Dobbiamo specificare l action (Intent.ACTION_CALL) e l Uri (il numero di telefono). Intent i = new Intent( Intent.ACTION_CALL, Uri.parse( tel:(+39)123456 ) ); startactivity(i); Ricordarsi di impostare nel manifest il parametro uses-permission di tipo android. permission.call_phone

Intent impliciti (1) Di seguito alcuni tipi di intent impliciti: Visualizzare una pagina web Action: Intent.ACTION_VIEW Es. Uri: Uri.parse( http://www.yahoo.it ) Permission: android.permission.internet Visualizzare una mappa georeferenziata Action: Intent.ACTION_VIEW Es. Uri: Uri.parse("geo:45.6577793, 13.8289025?z=15") Permission: android.permission.internet Visualizzare un video di youtube Action: Intent.ACTION_VIEW Es. Uri: Uri.parse("vnd.youtube:sONcojECWXs") Permission: android.permission.internet

Intent impliciti (2) Effettuare una chiamata Action: Intent.ACTION_CALL Es. Uri: Uri.parse( tel:(+39)123456 ) Permission: android.permission.call_phone Comporre un numero Action: Intent.ACTION_DIAL Es. Uri: Uri.parse( tel:(+39)123456 ) Permission: / Scattare una foto Action: android.media.action.image_capture Es. Uri: / Permission: android.permission.camera *per approfondire gli intent vedere gli esempi al seguente link: http://www.intertech.com/blog/android-intents-for-app-integration-call-a-calculator-play-video-open-an-editor/

Passaggio di dati

Passare dei dati Mediante l intent possiamo anche passare dei dati extra mediante i.putextra(chiave, valore) dove chiave è una stringa e valore può essere un tipo primitivo o oggett di tipo Stringa, Bundle, Serializable. Per recuperare le informazioni, nell activity chiamata, si utilizza ad esempio il seguente modo per recuperare una stringa: String s = getintent( ).getextras( ).getstring(chiave); O più genericamente: Bundle extras = getintent( ).getextras( ); if(extras!=null){ String s=extras.getstring(chiave) }

Restituire dei dati (1) A volte abbiamo bisogno che l activity chiamata torni un risultato. In questo caso dobbiamo eseguire le seguenti operazioni: 1. Facciamo partire la nuova activity con startactivityforresult 2. Quando l activity richiamata termina, impostiamo i valori da ritornare (solitamente nel metodo finish) 3. Impostiamo il metodo di callback onactivityresult per recuperare il risultato ritornato (nella activity chiamante).

Restituire dei dati (2) 1. Facciamo partire la nuova activity con startactivityforresult startactivityforresult(intent i, int requestcode); requestcode è un codice che assegnamo all intent per verificare al ritorno dalla activity chiamata da che intent stiamo ritornando. Solitamente si utilizza una costante. Es. private final static int INTENT_CODE=1;... Intent i = new Intent(this, Activity2.class"); startactivityforresult(i, INTENT_CODE);

Restituire dei dati (3) 2. Quando l activity richiamata termina, impostiamo i valori da ritornare. Utilizziamo un intent per impostare i valori da ritornare alla activity chiamante ed eseguiamo il metodo setresult passando una costante indicante la buona riuscita e l intent creato. Es. public void finish( ){ Intent i = new Intent( ); String nome = editnome.gettext( ).tostring( ); i.putextra( Nome, nome); setresult(result_ok, i); super.finish( ); }

Restituire dei dati (4) 3. Impostiamo il metodo di callback onactivityresult* per recuperare il risultato ritornato (nella activity chiamante). Tale metodo riceve due interi, requestcode che indica da quale activity stiamo ricevendo dati, resultcode che indica la riuscita dell intent e un intent (data) contentente i valori passati. protected void onactivityresult( int requestcode, int resultcode, Intent data) { if (requestcode == INTENT_CODE && resultcode == RESULT_OK) { String nome = data.getextras().getstring("nome"); text1.settext(nome); } } *per semplicità in Eclipse richiamiamo il metodo mediante il menu Source -> override/implement methods

Esempio: Utilizzo della camera

Utilizzo della camera (1) Richiamiamo l activity di default che gestisce la camera. Tale activity non vuole nessun parametro aggiuntivo, quindi nell intent avremo solo l action: private final static int CAMERA_CODE = 1;... public void onclick(view v) { Intent i = new Intent("android.media.action.IMAGE_CAPTURE"); startactivityforresult(i, CAMERA_CODE); }

Utilizzo della camera (2) Dobbiamo essere a conoscenza che l activity che scatta la fotografia ci ritorna un intent con l immagine salvata con l etichetta data. Quindi la prendiamo e la castiamo in Bitmap e la utilizziamo: protected void onactivityresult( int requestcode, int resultcode, Intent data) { if (requestcode == CAMERA_CODE && resultcode == RESULT_OK) { Bitmap foto = (Bitmap) data.getextras().get("data"); imagefoto.setimagebitmap(foto); } }

Intent filter

Intent filter (1) Un intent-filter è una dichiarazione di comportamento che possiamo assegnare alla nostra applicazione direttamente nel manifest. <activity... > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> Queste dichiarazioni indicano che l activity viene eseguita come punto di partenza della app e che compaia l icona di esecuzione nell elenco dei programmi disponibili nel dispositivo.

Intent filter (2) Se vogliamo che la nostra activity possa ricevere una chiamata implicita come, ad esempio, visualizzare un Url, dovremo specificarlo nell intent filter: <intent-filter > <action android:name="android.intent.action.view" /> <category android:name="android.intent.category.default" /> <data android:scheme="http" /> </intent-filter> Questo intent-filter indica che la nostra activity risponderà ad intent impliciti di tipo action.view. Dichiariamo anche lo schema dei dati da ricevere.