• Aucun résultat trouvé

Chapitre 3 Intents (intentions)

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 3 Intents (intentions)"

Copied!
5
0
0

Texte intégral

(1)

Chapitre 3 Intents (intentions)

© Mohamed N. Lokbani 1.08 Programma on mobile à plateforme libre

Chapitre 3 : Intents 2

- Android restreint une application à des actions bien définies. Il protège ainsi le système enfermant l’application dans son propre environnement.

- Comment faire donc si une application veut communiquer avec une autre application?

- C’est le but de l’objet « intent ».

- Cet objet permet donc à une application de communiquer entre ses différents composants (communiquer avec un service par exemple).

- Il permet aussi la communication entre les applications.

- Par ailleurs, les 4 composants fondamentaux d’Android sont activés à l’aide de ces

« intents ».

(2)

- Les « intents » sont appelés dans les situations suivantes :

Lancer une activité startActivity (intent)

Envoyer un « intent » à un composant « BroadcastReceiver » sendBroadcast (intent)

Communiquer en arrière-plan avec un service startService(intent) bindService(intent)

© Mohamed N. Lokbani 1.08 Programma on mobile à plateforme libre

Chapitre 3 : Intents 4

C02 : SimpleBroadcastReceiverApp private Intent broadcastIntent;

public void onClick(View v) {

sendBroadcast(broadcastIntent);

}

C02 : MonService

// Cette méthode sera appelée après avoir cliqué sur le bouton "start service"

public void demarreService(View view) {

// On appelle la méthode pour démarrer un service en lui passant comme // argument une intention définie par le contexte actuel, et comme point // d'entrée la classe définie dans le fichier MonService.java

startService(new Intent(getBaseContext(), MonService.class));

(3)

- Comment démarrer une activité à l’aide de « intent » : Intent Uneactivite = new Intent (action, data);

startActivity (Uneactivite);

- Les arguments d’un « intent » sont :

 Action : l’action que le destinataire doit réaliser. On peut utiliser une des actions fournies par le système, « ACTION_DIAL » pour afficher un composeur de numéros téléphoniques, « ACTION_VIEW » pour afficher une page web ou un contact, etc. Il est possible aussi d’en définir de nouvelles actions propres à l’activité.

Data : les données sur lesquelles le traitement va avoir lieu, exprimées en

« URI ». Il faudra donc utiliser « tel:1234 » pour téléphoner,

« h p://www.iro.umontreal.ca » pour afficher une page dans un navigateur, etc.

© Mohamed N. Lokbani 1.08 Programma on mobile à plateforme libre

Chapitre 3 : Intents 6

- Un « intent » peut-être « implicite » ou « explicite » :

 « implicite » : il ne définit pas une cible précise. Il lance un appel. Le système cherche les applications qui peuvent répondre à cet appel. Je veux faire un appel téléphonique, le système va chercher une application qui me permet de le faire.

Intent alpha = new Intent (Intent.ACTION_VIEW, Uri.parse("http://www.iro.umontreal.ca"));

 « explicite » : on cible précisément le composant que le système Android doit appeler, en utilisant pour cela un identificateur de la classe Java. Si la classe représente un « intent » d’activité, le système Android va se charger de la démarrer.

Intent beta = new Intent (this, HelloWorld.class);

(4)

Intent Filters

- Les filtres sont utilisés pour permettre au système de connaitre les « intents » qu'il doit utiliser pour gérer les activités, les services et « Broadcast Receivers ». Ces éléments peuvent avoir un ou plusieurs filtres « intents ».

- Les filtres sont généralement définis dans le fichier « AndroidManifest.xml ».

C02 : AirplaneMode

<receiver android:name="AirplaneMode">

<intent-filter>

<action android:name="android.intent.action.AIRPLANE_MODE"/>

</intent-filter>

</receiver>

© Mohamed N. Lokbani 1.08 Programma on mobile à plateforme libre

Chapitre 3 : Intents 8

- Pour les « BroadcastReceiver », il est possible de les définir dans le programme Java.

C02 : SimpleBroadcastReceiverApp

private static final String MYBROADCAST_INTENTFILTER =

"9android.net.mybroadcastReceiver";

private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() {...}

registerReceiver(myBroadcastReceiver, new IntentFilter(MYBROADCAST_INTENTFILTER));

- Si un composant ne définit pas un filtre d’intention, ce composant ne peut être appelé que par un « intent » explicite.

(5)

Transfert de données

- Comme nous l’avons mentionné, un « intent » contient une action et des données. Le composant qui reçoit l’intention peut récupérer ces deux informations à l’aide des méthodes « getAction() » et « getData() » de l’objet « intent ».

- L’objet « intent » peut-être récupéré par la méthode « getIntent() ».

- Le composant qui crée l’intention peut lui ajouter des données en redéfinissant la méthode « putExtra() ».

C02 : SimpleBroadcastReceiverApp

public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub

showToast(intent.getExtras().get("9Android.net").toString());

}

broadcastIntent.putExtra("9Android.net",

"This is BroadcastReciver tutorial of 9Android.net!");

© Mohamed N. Lokbani 1.08 Programma on mobile à plateforme libre

Chapitre 3 : Intents 10

Les exemples associés à ce chapitre sont comme suit:

« C03: Intents » : utilisation des intentions

« C03 : EntryPoint » : une série d'activité avec passage de valeurs

« C03 : DeuxActivIntent » : deux activités et passage de valeurs entre elles

Références

Documents relatifs

- Repérer les incidences physiologiques générées par le travail musculaire - Distinguer les effets positifs et négatifs de l’activité physique sur la santé - Analyser les

An important problem related to recognizing pseudo-intents is deciding whether a given set is the lectically largest pseudo-intent.. Let M = {m

On va successivement étudier la possibilité de traverser le fossé avec 2,3,4,..n planches jusqu’à atteindre le château. La seule façon d’y parvenir est d’utiliser le coude

Pour ceci, chaque binôme réalise quatre nouvelle fois le protocole ci-dessus avec le même bécher et note les valeurs dans le tableau partagé.. − Chaque binôme réalise à nouveau

Several authors dealing with synthesis of FCA and Rough Set Theory have noticed that intents formed by isotone and antitone operators (in both, crisp and fuzzy setting) correspond

The construction of attribute sets is inspired by Next Closure, the most common batch algorithm for computing pseudo-intents, in that it uses the lectic order to ensure the

In this case, until we find and correct the error, we are not able to deduce all dependencies valid in the data domain from the implication basis, no matter how many correct objects

Si le coté le plus long a une longueur égale à la somme des deux autres cotés alors les 3 points sont alignés (le triangle est aplati). II QUELQUES « DROITES » DU TRIANGLE