Terzo Esercizio “Intenzione -> Azione”

Bene eccoci di nuovo al nosro appuntamento “Programmare su android” oggi inizieremo a prendere dimistichezza con le “intenzioni”, le  intenzioni o “intent”, per android sono delle azioni o per meglio dire delle “dichiarazioni di azioni”.

Oggi vedremo come creare un “intent” che lanci il dialer del nostro telefono con impostato un numero a nostro piacimento, e come effettuare una chiamata sempre impostando un numero a nostra scelta.

Iniziamo:

Come prima cosa creiamo un nuovo progetto con “Eclipse”,

Andiamo su file mian.xml contenuto in res/layout e cancelliamo

<TextView  
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:text=”Hello World”
/>

in questo modo non avremmo interferenze con le visualizzazioni.

Spostiamoci sul sorgente e importiamo le nostre librerie:

import android.net.Uri;
import android.content.Intent;
import android.os.Bundle;
import android.net.Uri;

come possiamo notare sono comparse due nuove librerie:

import android.net.Uri;
import android.content.Intent;

la prima servirà per far capire ad android il numero di telefono da comporre, mentre con la seconda potremmo dare sapzio alla nostra fantasia in quanto con essa abbiamo accesso a “tutte” le azioni che il nostro smart-phone supporta.

Prima vi ho parlato di intenzioni bene vediamo come se ne crea una:

Intent DialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse(”tel:1234567″));

in questo modo ci stiamo preparando a lanciare un’azione,più precisamente stiamo dicendo al nostro smart-phone di aprire il tastierino numerico e inserire il numero 1234567.

Notate come ACTION_DIAL per funzionare abbia bisogno di una stringa (in questo caso il numero di telefono) essa non viene passata direttamente, ma prima deve essere processata dalla chiamata Uri.parser che si occuperà di tradurla nel formato che si aspetta ACTION_DIAL.

Adesso che abbiamo creato l’intenzione dobbiamo associarla ad una vera e propria azione:

DialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

Adesso la nostra intenzione è diventata un’azione, non ci resta altro che eseguire l’azione e vedere cosa succede.

startActivity(DialIntent);

Come secondo esercizio adesso proveremo a creare una nuova azione che esegua la chiamata del numero da noi scelto.
Per prima cosa creiamo la nostra intenzione:

Intent CallIntent = new Intent(Intent.ACTION_CALL,Uri.parse(”tel:55534223″));

Questa volta non vogliamo che appai nel tastieruno nunmerico ma vogliamo che effettui proprio la chiamata, per fare questo invochiamo la “ACTION_CALL” che si aspetta sempre una stringa che verrà processata da Uri.parser.

Trasformiamo l’intenzione in azione:

CallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

eseguiamo l’azione:

startActivity(CallIntent);

Potreste avere degli errori dovuti ai permessi durante l’esecuzione sull’emulatore, per ovviare a questo andate nel file AndroidManifest.xml cliccate in basso sul tab “permissions” poi cliccate su “add” scegliete “Uses Permission”
cliccate su “ok”, sulla select di destra selezionate “android.permission.CALL_PHONE”.

package guida.rubrica;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.net.Uri;
public class rubrica extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
/** Creo l’intenzione Dialer */
/** Passo a Dialer il numero di telefono 1234567 */
Intent DialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse(”tel:1234567″));
/** Trasformo l’intenzione in azione */
DialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
/** Eseguo l’azione */
/**Intenzione chiamata*/
Intent CallIntent = new  
Intent(Intent.ACTION_CALL,Uri.parse(”tel:1234567″));
CallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
/**startActivity(CallIntent);*/
startActivity(DialIntent);
/**commentate le azioni a seconda di quella che volete eseguire*/
}
}

Bene vi do appuntamento al porssimo esercizio!!!!!!!!!!!!!

pdf

Related posts:

  1. Programmare per Android – secondo esercizio Oggi spiegeremo come scrivere il nostro secondo programma, nulla di...

Articoli correlati elaborati dal plugin Yet Another Related Posts.

Scritto da slacky sabato, 5th dicembre , 2009 12:17 Letture:

    « Xrapyd Back-End native XML  |  Codeigniter e TinyMCE = TinyCIMM, Module FOR HMVC »

    Leave a Reply