SlideShare uma empresa Scribd logo
1 de 17
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

Mais conteúdo relacionado

Destaque

[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
 
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é
 
Snack S48-2015
Snack S48-2015Snack S48-2015
Snack S48-2015snackk4
 
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
 
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-marincirili_web
 
AdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 MonateAdWords Updates der letzten 12 Monate
AdWords Updates der letzten 12 Monatemarc hoeft
 
GCN LORET
GCN LORETGCN LORET
GCN LORETloret
 
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 2014Michel Kuipers
 

Destaque (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
 

Semelhante a Android: Les 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'AndroidHoussem 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'AndroidHoussem Lahiani
 
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
 
Les vues (views) sous android
Les vues (views) sous androidLes vues (views) sous android
Les vues (views) sous androidHoussem Lahiani
 
Chapitre 3 activites et intents
Chapitre 3   activites et  intentsChapitre 3   activites et  intents
Chapitre 3 activites et intentsAmir Souissi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
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
 
Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)Bruno Delb
 

Semelhante a 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
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
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)
 
Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)Android Lab Test : La reconnaissance vocale (français)
Android Lab Test : La reconnaissance vocale (français)
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 

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

Notas do Editor

  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.