SlideShare une entreprise Scribd logo
ANDROID: LES INTENTS
MOHAMED BOURAOUI
BOURAWI.MOHAMED@GMAIL.COM
LES INTENTS
 Les Intents permettent de gérer l'envoi et la réception de messages afin
de faire coopérer les applications.
 Le but des Intents est de déléguer une action vers une autre application
ou une autre activité de l'application courante.
 Il y a plusieurs façons de créer l'objet de type Intent qui permettra de
lancer une nouvelle activité. Si l'on passe la main à une activité interne à
l'application, on peut créer l'Intent et passer la classe de l'activité ciblée
par l'Intent:
Intent login = new Intent(this, GiveLogin.class);
startActivity(login);
Le premier paramètre de construction de l'Intent est en fait le contexte de
l'application. Dans certain cas, il ne faut pas mettre this mais faire appel à
getApplicationContext() si l'objet manipulant l'Intent n'hérite pas de
Context.
AJOUTER UNE INFORMATION
 Les Intent permettent de transporter des informations à destination de
l'activité cible. On appelle ces informations des Extra: les méthodes
permettant de les manipuler sont putExtra et getExtra.
 Lorsqu'on prépare un Intent et que l'on souhaite ajouter une information de
type "clef  valeur" on procède ainsi:
Intent callactivity2 = new Intent(this, GiveLogin. class);
callactivity2.putExtra("login", "admin");
startActivity(callactivity2);
Dans la classe destination (GiveLogin), on peut récupérer les extras, chacun à partir de sa
clé, ainsi:
Intent intentrecup= getIntent();
String loginTxt= intentrecup.getStringExtra("login");
EXEMPLE
 Activité pour l’authentification
 Activité pour l’accueil
EXEMPLE : COMPLÉTEZ PAR LE CODE NÉCESSAIRE
Authentification.java
Acceuil.java
@Override
public void onClick(View v) {
Intent intent = new Intent(this, Acceuil.class);
String monTexte = champ_nom.getText().toString();
intent.putExtra(extraMsg,monTexte);
startActivity(intent);
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_acceuil);
textV = (TextView)findViewById(R.id.msgText);
Intent intent = getIntent();
String message = intent.getStringExtra(Authentification.extraMsg);
textV.setText("Bonjour "+message);
}
??
??
LES INTENTS (2)
 S'il s'agit de passer la main à une autre application, on donne au
constructeur de l'Intent les données et l'URI cible: l'OS est chargé de
trouver une application pouvant répondre à l'Intent. Exemple : La
composition d’un numéro
Button btn = (Button)findViewById(R.id.btn_call);
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Uri telnumber = Uri.parse("tel:0248484000");
Intent call = new Intent(Intent.ACTION_DIAL, telnumber);
startActivity(call);
}
});
Lance l’application de
composition d’un
numéro
Ne pas oublier d’ajouter
les autorisations
nécessaires
LES SOUS-ACTIVITÉS
 Une activité peut démarrer une activité « enfant » ou sous activité. Le
parent attend dans ce cas un résultat en retour.
 Etapes:
1. Création de l’intent
2. Lancement de la sous activité
startActivityForResult(intent,ID_REQUEST_CODE);
Activité
parent
Activité
fille
3. Récupération de l'Intent +
extraction
4. Traitement
5.Création du Bundle retour
6. Fin activité et renvoie Bundle
protected void onActivityResult( int requestCode,
int resultCode, Intent data)
7. Gestionnaire pour la réception du mesage en retour
LES SOUS-ACTIVITÉS: EXEMPLE
Activité parent Activité enfant
1
2
4
1
3
4
Lancer l’activité
fille pour la
saisie de l’âge 2
• Récupérer
l’intent
• Traitement
• Création du
Bundle
retour
Fin de l’activité
et renvoie du
Bundle
3
final int ID_REQUEST_CODE = 0;
btn_saisie_age = (Button)findViewById(R.id.btn_saisie_age);
btn_saisie_age.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),Saisie_age.class);
startActivityForResult(i, ID_REQUEST_CODE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
txt_resultat = (TextView)findViewById(R.id.txtRes);
if(requestCode == ID_REQUEST_CODE)
{
if(resultCode == RESULT_OK)
{
txt_resultat.setText(data.getStringExtra("resultat"));
}
if(resultCode == RESULT_CANCELED)
{
Toast.makeText(getApplicationContext(), "Saisie annulée. Merci de
saisir age de nouveau", Toast.LENGTH_SHORT).show();
}}}
Les sous-activités : Activité « parent »
Les sous-activités : Activité « fille »
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_CANCELED);
finish();
}
});
btn_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(champ_saisie_age.getText().length() > 0){
Intent returnIntent = new Intent();
returnIntent.putExtra("resultat",champ_saisie_age.getText().toString());
setResult(RESULT_OK, returnIntent);}
else{
Toast.makeText(getApplicationContext(),"Veuillez vérifier votre
saisie",Toast.LENGTH_SHORT).show();}
finish();}
});
BROADCASTER UNE INFORMATION
 Il est possible d'utiliser un objet Intent pour broadcaster un
message à but informatif. Ainsi, toutes les applications pourront
capturer ce message et récupérer l'information.
Intent broadcast = new Intent("demo.android.broadcast");
broadcast.putExtra("extra", "msgExtra");
sendBroadcast(broadcast);
On peut récupérer les données à l'aide de la méthode getExtras dans l'objet
Bundle qui est dans l'Intent:
Bundle extra = intent.getExtras();
String val = extra.getString("extra");
LES CATÉGORIES D’INTENTS
 Les catégories d'Intent permettent de grouper les applications par grands
types de fonctionnalités (clients emails, navigateurs, players de musique,
etc...).
 Par exemple, on trouve les catégories suivantes qui permettent de lancer:
 DEFAULT: catégorie par défaut
 BROWSABLE: une activité qui peut être invoquée depuis un clic sur un
navigateur web
 APP_MARKET: une activité qui permet de parcourir le market de
télécharger des applications
FILTRER LES INTENTS
 Une activité sous android peut filtrer les messages véhiculant par des intents
et capter les messages qui les intéressent.
 Pour ce faire, on peut définir des filtres d’intent dans le
AndroidManifest.xml de l’application.
 On peut utiliser plusieurs niveaux de filtrage:
 action: identifie le nom de l'Intent.
 category: permet de filtrer une catégorie d'action (DEFAULT, BROWSABLE,
...)
 data: filtre sur les données du message.
 par exemple en utilisant android:host pour filtrer un nom de domaine
particulier
EXEMPLE: EMISSION ET RÉCEPTION D’UN MESSAGE EN BROADCAST
@Override
public void onClick(View v) {
Intent i = new Intent("android.broadcast.demo");
sendBroadcast(i);
}
Activity.java
MyReceiver.java
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Message reçu en Broadcast",
Toast.LENGTH_LONG).show();
}
EXEMPLE: EMISSION ET RÉCEPTION D’UN MESSAGE EN BROADCAST
AndroidManifest.xml<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".Acceuil"
android:label="@string/title_activity_acceuil">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter></activity>
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.broadcast.demo" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
LES MESSAGES NATIFS
 Il y’a toujours des messages qui sont diffusés par l’OS. Par exemple:
• ACTION_BOOT_COMPLETED: diffusé lorsque le système a fini son boot
• ACTION_SHUTDOWN: diffusé lorsque le système est en cours d'extinction
• ACTION_SCREEN_ON / OFF: allumage / extinction de l'écran
• ACTION_POWER_CONNECTED / DISCONNECTED: connexion / perte de
l'alimentation
• ACTION_TIME_TICK: une notification envoyée toutes les minutes
…
Tous les messages des Intents, vous pouvez les consulter sur:
http://developer.android.com/reference/android/content/Intent.html
LES MESSAGES NATIFS
 Autres actions permettent de déléguer autres applications, exemples:
• ACTION_CALL (ANSWER, DIAL): passer/réceptionner/afficher un appel
• ACTION_SEND: envoyer des données par SMS ou E-mail
• ACTION_WEB_SEARCH: rechercher sur internet

Contenu connexe

En vedette

[Ege hauts de france] synthèse ateliers
[Ege hauts de france] synthèse ateliers[Ege hauts de france] synthèse ateliers
[Ege hauts de france] synthèse ateliers
Institut de l'Elevage - Idele
 
Atelier 1 introduction - Enjeux et questions clés
Atelier 1 introduction - Enjeux et questions clésAtelier 1 introduction - Enjeux et questions clés
Atelier 1 introduction - Enjeux et questions clés
Institut de l'Elevage - Idele
 
[Ege hauts de france] les productions animales dans la tourmente des matières...
[Ege hauts de france] les productions animales dans la tourmente des matières...[Ege hauts de france] les productions animales dans la tourmente des matières...
[Ege hauts de france] les productions animales dans la tourmente des matières...
Institut de l'Elevage - Idele
 
Carte Professionnel
Carte ProfessionnelCarte Professionnel
Carte Professionnel
Lars Traiteur
 
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
ASIP Santé
 
2013-05-28 ASIP Santé HIT "Actualité juridique de la e-santé"
2013-05-28 ASIP Santé HIT  "Actualité juridique de la e-santé"2013-05-28 ASIP Santé HIT  "Actualité juridique de la e-santé"
2013-05-28 ASIP Santé HIT "Actualité juridique de la e-santé"
ASIP Santé
 
Absolut Vodka
Absolut VodkaAbsolut Vodka
Absolut Vodka
Emilie Robichaud
 
Snack S48-2015
Snack S48-2015Snack S48-2015
Snack S48-2015
snackk4
 
Presentation Ars
Presentation ArsPresentation Ars
Presentation Ars
gaillard_stephane
 
Cv
CvCv
Sous-marin nucléaire lanceur d'engins
Sous-marin nucléaire lanceur d'enginsSous-marin nucléaire lanceur d'engins
Sous-marin nucléaire lanceur d'enginsjufanch
 
Einparkhilfe Präsentation
Einparkhilfe PräsentationEinparkhilfe Präsentation
Einparkhilfe Präsentation
Joanna Ludmila Rycko
 
La médiation du patrimoine sous-marin
La médiation du patrimoine sous-marinLa médiation du patrimoine sous-marin
La médiation du patrimoine sous-marin
cirili_web
 
AdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 MonateAdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 Monate
marc hoeft
 
GCN LORET
GCN LORETGCN LORET
GCN LORET
loret
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Michel Kuipers
 

En vedette (16)

[Ege hauts de france] synthèse ateliers
[Ege hauts de france] synthèse ateliers[Ege hauts de france] synthèse ateliers
[Ege hauts de france] synthèse ateliers
 
Atelier 1 introduction - Enjeux et questions clés
Atelier 1 introduction - Enjeux et questions clésAtelier 1 introduction - Enjeux et questions clés
Atelier 1 introduction - Enjeux et questions clés
 
[Ege hauts de france] les productions animales dans la tourmente des matières...
[Ege hauts de france] les productions animales dans la tourmente des matières...[Ege hauts de france] les productions animales dans la tourmente des matières...
[Ege hauts de france] les productions animales dans la tourmente des matières...
 
Carte Professionnel
Carte ProfessionnelCarte Professionnel
Carte Professionnel
 
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
2013-06-13 ASIP Santé RIR "Etat d’avancement des travaux ROR (Répertoire Opér...
 
2013-05-28 ASIP Santé HIT "Actualité juridique de la e-santé"
2013-05-28 ASIP Santé HIT  "Actualité juridique de la e-santé"2013-05-28 ASIP Santé HIT  "Actualité juridique de la e-santé"
2013-05-28 ASIP Santé HIT "Actualité juridique de la e-santé"
 
Absolut Vodka
Absolut VodkaAbsolut Vodka
Absolut Vodka
 
Snack S48-2015
Snack S48-2015Snack S48-2015
Snack S48-2015
 
Presentation Ars
Presentation ArsPresentation Ars
Presentation Ars
 
Cv
CvCv
Cv
 
Sous-marin nucléaire lanceur d'engins
Sous-marin nucléaire lanceur d'enginsSous-marin nucléaire lanceur d'engins
Sous-marin nucléaire lanceur d'engins
 
Einparkhilfe Präsentation
Einparkhilfe PräsentationEinparkhilfe Präsentation
Einparkhilfe Präsentation
 
La médiation du patrimoine sous-marin
La médiation du patrimoine sous-marinLa médiation du patrimoine sous-marin
La médiation du patrimoine sous-marin
 
AdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 MonateAdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 Monate
 
GCN LORET
GCN LORETGCN LORET
GCN LORET
 
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
Hoogste beoordeling Marin Mount Vision C-XM Pro door Bike Germany - mei 2014
 

Similaire à Android: Les intents

TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
FethiBenYahia1
 
Chapitre 5 android
Chapitre 5 androidChapitre 5 android
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
RihabBENLAMINE
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
Chaikhani Ibtissam
 
My droid
My droidMy droid
P4 intents
P4 intentsP4 intents
P4 intents
Lilia Sfaxi
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
Houssem Lahiani
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
Houssem Lahiani
 
intent android studio android android android
intent android studio android android androidintent android studio android android android
intent android studio android android android
zakariarouissiya
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
bouchakyahya0
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous android
Houssem Lahiani
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
Amir Souissi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
Lilia Sfaxi
 
Atelier18
Atelier18 Atelier18
Atelier18
ChaimaaKibal
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
Lilia Sfaxi
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
coursuniv
 
Activity android
Activity androidActivity android
Activity android
Pierre Christophe Faye
 
Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)
Bruno Delb
 

Similaire à Android: Les intents (20)

TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
Chapitre 5 android
Chapitre 5 androidChapitre 5 android
Chapitre 5 android
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
My droid
My droidMy droid
My droid
 
P4 intents
P4 intentsP4 intents
P4 intents
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
intent android studio android android android
intent android studio android android androidintent android studio android android android
intent android studio android android android
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
 
Poo
PooPoo
Poo
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous android
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Atelier18
Atelier18 Atelier18
Atelier18
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Activity android
Activity androidActivity android
Activity android
 
Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)Android Lab Test : L'installation d'une application en Java (français)
Android Lab Test : L'installation d'une application en Java (français)
 

Dernier

PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 

Dernier (9)

PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 

Android: Les intents

  • 1. ANDROID: LES INTENTS MOHAMED BOURAOUI BOURAWI.MOHAMED@GMAIL.COM
  • 2. LES INTENTS  Les Intents permettent de gérer l'envoi et la réception de messages afin de faire coopérer les applications.  Le but des Intents est de déléguer une action vers une autre application ou une autre activité de l'application courante.  Il y a plusieurs façons de créer l'objet de type Intent qui permettra de lancer une nouvelle activité. Si l'on passe la main à une activité interne à l'application, on peut créer l'Intent et passer la classe de l'activité ciblée par l'Intent: Intent login = new Intent(this, GiveLogin.class); startActivity(login); Le premier paramètre de construction de l'Intent est en fait le contexte de l'application. Dans certain cas, il ne faut pas mettre this mais faire appel à getApplicationContext() si l'objet manipulant l'Intent n'hérite pas de Context.
  • 3. AJOUTER UNE INFORMATION  Les Intent permettent de transporter des informations à destination de l'activité cible. On appelle ces informations des Extra: les méthodes permettant de les manipuler sont putExtra et getExtra.  Lorsqu'on prépare un Intent et que l'on souhaite ajouter une information de type "clef  valeur" on procède ainsi: Intent callactivity2 = new Intent(this, GiveLogin. class); callactivity2.putExtra("login", "admin"); startActivity(callactivity2); Dans la classe destination (GiveLogin), on peut récupérer les extras, chacun à partir de sa clé, ainsi: Intent intentrecup= getIntent(); String loginTxt= intentrecup.getStringExtra("login");
  • 4. EXEMPLE  Activité pour l’authentification  Activité pour l’accueil
  • 5. EXEMPLE : COMPLÉTEZ PAR LE CODE NÉCESSAIRE Authentification.java Acceuil.java @Override public void onClick(View v) { Intent intent = new Intent(this, Acceuil.class); String monTexte = champ_nom.getText().toString(); intent.putExtra(extraMsg,monTexte); startActivity(intent); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_acceuil); textV = (TextView)findViewById(R.id.msgText); Intent intent = getIntent(); String message = intent.getStringExtra(Authentification.extraMsg); textV.setText("Bonjour "+message); } ?? ??
  • 6. LES INTENTS (2)  S'il s'agit de passer la main à une autre application, on donne au constructeur de l'Intent les données et l'URI cible: l'OS est chargé de trouver une application pouvant répondre à l'Intent. Exemple : La composition d’un numéro Button btn = (Button)findViewById(R.id.btn_call); b.setOnClickListener(new OnClickListener() { public void onClick(View v) { Uri telnumber = Uri.parse("tel:0248484000"); Intent call = new Intent(Intent.ACTION_DIAL, telnumber); startActivity(call); } }); Lance l’application de composition d’un numéro Ne pas oublier d’ajouter les autorisations nécessaires
  • 7. LES SOUS-ACTIVITÉS  Une activité peut démarrer une activité « enfant » ou sous activité. Le parent attend dans ce cas un résultat en retour.  Etapes: 1. Création de l’intent 2. Lancement de la sous activité startActivityForResult(intent,ID_REQUEST_CODE); Activité parent Activité fille 3. Récupération de l'Intent + extraction 4. Traitement 5.Création du Bundle retour 6. Fin activité et renvoie Bundle protected void onActivityResult( int requestCode, int resultCode, Intent data) 7. Gestionnaire pour la réception du mesage en retour
  • 8. LES SOUS-ACTIVITÉS: EXEMPLE Activité parent Activité enfant 1 2 4 1 3 4 Lancer l’activité fille pour la saisie de l’âge 2 • Récupérer l’intent • Traitement • Création du Bundle retour Fin de l’activité et renvoie du Bundle 3
  • 9. final int ID_REQUEST_CODE = 0; btn_saisie_age = (Button)findViewById(R.id.btn_saisie_age); btn_saisie_age.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(getApplicationContext(),Saisie_age.class); startActivityForResult(i, ID_REQUEST_CODE); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { txt_resultat = (TextView)findViewById(R.id.txtRes); if(requestCode == ID_REQUEST_CODE) { if(resultCode == RESULT_OK) { txt_resultat.setText(data.getStringExtra("resultat")); } if(resultCode == RESULT_CANCELED) { Toast.makeText(getApplicationContext(), "Saisie annulée. Merci de saisir age de nouveau", Toast.LENGTH_SHORT).show(); }}} Les sous-activités : Activité « parent »
  • 10. Les sous-activités : Activité « fille » btn_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setResult(RESULT_CANCELED); finish(); } }); btn_ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(champ_saisie_age.getText().length() > 0){ Intent returnIntent = new Intent(); returnIntent.putExtra("resultat",champ_saisie_age.getText().toString()); setResult(RESULT_OK, returnIntent);} else{ Toast.makeText(getApplicationContext(),"Veuillez vérifier votre saisie",Toast.LENGTH_SHORT).show();} finish();} });
  • 11. BROADCASTER UNE INFORMATION  Il est possible d'utiliser un objet Intent pour broadcaster un message à but informatif. Ainsi, toutes les applications pourront capturer ce message et récupérer l'information. Intent broadcast = new Intent("demo.android.broadcast"); broadcast.putExtra("extra", "msgExtra"); sendBroadcast(broadcast); On peut récupérer les données à l'aide de la méthode getExtras dans l'objet Bundle qui est dans l'Intent: Bundle extra = intent.getExtras(); String val = extra.getString("extra");
  • 12. LES CATÉGORIES D’INTENTS  Les catégories d'Intent permettent de grouper les applications par grands types de fonctionnalités (clients emails, navigateurs, players de musique, etc...).  Par exemple, on trouve les catégories suivantes qui permettent de lancer:  DEFAULT: catégorie par défaut  BROWSABLE: une activité qui peut être invoquée depuis un clic sur un navigateur web  APP_MARKET: une activité qui permet de parcourir le market de télécharger des applications
  • 13. FILTRER LES INTENTS  Une activité sous android peut filtrer les messages véhiculant par des intents et capter les messages qui les intéressent.  Pour ce faire, on peut définir des filtres d’intent dans le AndroidManifest.xml de l’application.  On peut utiliser plusieurs niveaux de filtrage:  action: identifie le nom de l'Intent.  category: permet de filtrer une catégorie d'action (DEFAULT, BROWSABLE, ...)  data: filtre sur les données du message.  par exemple en utilisant android:host pour filtrer un nom de domaine particulier
  • 14. EXEMPLE: EMISSION ET RÉCEPTION D’UN MESSAGE EN BROADCAST @Override public void onClick(View v) { Intent i = new Intent("android.broadcast.demo"); sendBroadcast(i); } Activity.java MyReceiver.java public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Message reçu en Broadcast", Toast.LENGTH_LONG).show(); }
  • 15. EXEMPLE: EMISSION ET RÉCEPTION D’UN MESSAGE EN BROADCAST AndroidManifest.xml<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".Acceuil" android:label="@string/title_activity_acceuil"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity> <receiver android:name=".MyReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.broadcast.demo" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application>
  • 16. LES MESSAGES NATIFS  Il y’a toujours des messages qui sont diffusés par l’OS. Par exemple: • ACTION_BOOT_COMPLETED: diffusé lorsque le système a fini son boot • ACTION_SHUTDOWN: diffusé lorsque le système est en cours d'extinction • ACTION_SCREEN_ON / OFF: allumage / extinction de l'écran • ACTION_POWER_CONNECTED / DISCONNECTED: connexion / perte de l'alimentation • ACTION_TIME_TICK: une notification envoyée toutes les minutes … Tous les messages des Intents, vous pouvez les consulter sur: http://developer.android.com/reference/android/content/Intent.html
  • 17. LES MESSAGES NATIFS  Autres actions permettent de déléguer autres applications, exemples: • ACTION_CALL (ANSWER, DIAL): passer/réceptionner/afficher un appel • ACTION_SEND: envoyer des données par SMS ou E-mail • ACTION_WEB_SEARCH: rechercher sur internet

Notes de l'éditeur

  1. Uniform Resource Identifier
  2. En déclarant un filtre au niveau du tag activity, l'application déclare les types de messsage qu'elle sait gérer et qui l'invoquent.
  3. En déclarant un filtre au niveau du tag activity, l'application déclare les types de messsage qu'elle sait gérer et qui l'invoquent.