2. OBJECTIFS ET ÉLÉMENTS DE CONTENU
Objectifs spécifiques
S’initier au control et gestion des évènement et à la notion d’intent implicite et explicite
Se familiariser avec le control d’évènements et la navigation entre activités et applications
Eléments de contenu
La gestion des évènements
Les intents
L’enchainement des écrans avec des intents explicites
Les intents implicites
Actions
Méthodes d’invocations d’intents
Appel Téléphonique
Envoi de mails
Voir tous les contacts
Voir un contact particulier
Editer un contact
Recherche google
Envoi d’un SMS
Afficher photos
Voir une page Web
Géolocalisation par coordonnées longitudes et latitude
Lancer Music Player
Ecouter chanson
Paramètres système
Volume Horaire :
Cours : 1.5 heure
2
Imene Sghaier-Développement d'Applications Mobiles Natives
3. LA GESTION DES ÉVÈNEMENTS
Deux moyens pour gérer les évènements:
Créer un auditeur d'événements (classe qui implémente
une interface connue) et l'enregistrer auprès du composant
en question
les View sont elles mêmes auditrices de certains
événements : (touché de l'écran par exemple). Il suffit donc
de spécialiser la méthode adaptée et la lancer lorsque
l'événement survient. Ces interfaces sont des interfaces
internes à la classe View et de nom OnXXXListener, donc
des interfaces de nom View.OnXXXListener. Cela
nécessite d'implémenter une méthode de nom onXXX( ).
On enregistre un auditeur par
setOnXXXListener(View.OnXXXListener).
Ceci permettra d'écrire directement la gestion de certains
événements qui peuvent se produire dans la View
3
Imene Sghaier-Développement d'Applications Mobiles Natives
4. LA GESTION DES ÉVÈNEMENTS
La première méthode consiste à faire implémenter un
listener à notre classe, ce qui veut dire que notre classe
sera une classe à l'écoute des actions qu'on effectuera sur
les vues. A chaque fois qu'on effectuera une action, une
méthode qui correspond à cette action sera appelée, et on
définira dans cette méthode ce qu'il faut faire une fois
l'action effectuée
Il existe déjà plusieurs interfaces prédéfinies, une pour
chaque type d'actions, nous allons voir uniquement le clic
normal pour l'instant.
L'interface utilisée s'appelle View.OnClickListener et
nous oblige à définir la méthode void onClick (View vue).
C'est dans cette méthode qu'on définira la conduite à
adopter en cas de clic. L'argument de type View est la
vue sur laquelle le clic a été effectué. 4
Imene Sghaier-Développement d'Applications Mobiles Natives
5. LA GESTION DES ÉVÈNEMENTS
Il existe d'autres interfaces avec d'autres méthodes à implémenter
View.OnLongClickListener pour les longs clics, avec la méthode :
boolean onLongClick(View vue)
elle doit retourner true une fois que l'action associée a été effectuée.
View.OnKeyListener pour gérer l'appui de touches avec la
méthode :
boolean onKey (View vue, int codeTouche, KeyEvent inforEvent)
Cette méthode doit retourner true une fois que l'action associée a été
effectuée.
View.OnTouchListener correspond à une simple touche qui
s'effectue sur l'élément. On observe une touche au moment d'un
clique puis au moment du relâchement. Rester appuyé après un clic
est toujours une touche, même si on sort de l'élément. On y associe la
méthode :
boolean onTouch (View vue, MotionEvent inforEvent)
Cette méthode doit retourner true une fois que l'action associée a été
effectuée.
5
Imene Sghaier-Développement d'Applications Mobiles Natives
6. LA GESTION DES ÉVÉNEMENTS
6
private OnClickListener lAuditeurDuBouton = new OnClickListener() {
public void onClick(View v) {
// code lancé lorsque le bouton est cliqué
}
};
protected void onCreate(Bundle savedValues) {
...
// Récupération du Button à partir de l'IHM en XML
Button button = (Button)findViewById(R.id.leBeauBouton);
// Enregistrer l'auditeur auprès du bouton
button.setOnClickListener(lAuditeurDuBouton);
...
}
Exemple: Créer un auditeur d'événements
Imene Sghaier-Développement d'Applications Mobiles Natives
7. 7
public class Main extends Activity implements View.OnTouchListener,
View.OnClickListener {
Button b = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.boutton);
b.setOnTouchListener(this);
b.setOnClickListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
/* réagir au toucher */
return true; }
@Override public void onClick(View v) {
/* réagir au clic */
}
}
LA GESTION DES ÉVÉNEMENTS
Exemple: Créer un auditeur d'événements
Imene Sghaier-Développement d'Applications Mobiles Natives
8. LA GESTION DES ÉVÉNEMENTS
8
public void onClick(View v) {
switch(v.getId()) {
//Si l'identifiant de la vue est celui du premier bouton
case R.id.bouton1:
/* agir pour bouton 1 */
break;
//Si l'identifiant de la vue est celui du second boutoncase
R.id.bouton2:
/* agir pour bouton 2 */
break;
/* etc. */ }}
si on a plusieurs boutons et qu'ils doivent effectuer
des actions différentes, on peut par exemple passer par
un switch pour savoir comment réagir en fonction du
bouton:
Imene Sghaier-Développement d'Applications Mobiles Natives
9. 9
public class Main extends Activity{
private OnClickListener clickListenerBoutons = new OnClickListener(){
@Override
public void onClick(View v) {
/* réagir au clic pour les boutons 1 et 2*/}};
private OnTouchListener touchListenerBouton1 = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
/* réagir au toucher pour le bouton 1*/
return false;}};
private OnTouchListener touchListenerBouton3 = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
/* réagir au toucher pour le bouton 3*/
return false;}};
Button b = null; Button b2 = null; Button b3 = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b = (Button) findViewById(R.id.boutton);
b.setOnTouchListener(touchListenerBouton1);
b.setOnClickListener(clickListenerBoutons);
b2.setOnClickListener(clickListenerBoutons);
b3.setOnTouchListener(touchListenerBouton3); }}
LA GESTION DES ÉVÉNEMENTS
Imene Sghaier-Développement d'Applications Mobiles Natives
10. LA GESTION DES ÉVÉNEMENTS
On peut indiquer dans le fichier .xml de description d'IHM, la
méthode qui sera lancée sous une certaine action sur un
composant graphique
Par exemple, l'attribut android:onClick d'un composant
graphique indique le nom de la méthode qui sera lancée si on
clique sur cette View
Par exemple, dans le fichier de description de l'IHM, on écrit
Dans l'activité chargeant l'IHM contenant ce Button, on pourra
écrire :
10
<Button
android:id="@+id/push"
...
android:onClick="onClickEmpiler">
</Button>
public void onClickEmpiler(View v){
// traitement lancé lorsque l'utilisateur clique sur le Button d'id push
}
Imene Sghaier-Développement d'Applications Mobiles Natives
11. PLAN DU CHAPITRE
La gestion des évènements
LesLes intentsintents
L’enchainement des écrans avec des intents explicites
Les intents implicites
Actions
Méthodes d’invocations d’intents
Appel Téléphonique
Envoi de mails
Voir tous les contacts
Voir un contact particulier
Editer un contact
Recherche google
Envoi d’un SMS
Afficher photos
Voir une page Web
Géolocalisation par coordonnées longitudes et latitude
Lancer Music Player
Ecouter chanson
Paramètres système
11
Imene Sghaier-Développement d'Applications Mobiles Natives
12. LES INTENTS
Un intent est une "intention" à faire quelque chose
contenant des informations destinées à un composant
Android. C'est un message asynchrone.
Les activités, services et récepteurs d'informations
utilisent les Intents pour communiquer entre eux.
La navigation entre les écrans peut se faire de deux
façons différentes : soit explicitement, soit implicitement.
Dans les deux cas, l’ordre de changement d’activité est
véhiculé par un objet de type Intent .
Un Intent ne contient pas obligatoirement explicitement
le composant qui va le gérer. Dans ce cas c'est un Intent
implicite.
Si l'Intent indique explicitement la classe du composant
qui va le gérer c'est un Intent explicite
Un événement est une sous classe de
android.content.Intent 12
Imene Sghaier-Développement d'Applications Mobiles Natives
13. 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 à un autre
composant, une autre application ou une autre activité de
l'application courante.
Un objet Intent contient les information (champs)
suivantes:
le nom du composant ciblé (facultatif)
l'action à réaliser, sous forme de chaine de caractères
les données: contenu MIME et URI
des données supplémentaires (extra) sous forme de
paires clè/valeur
une catégorie pour cibler un type d'application
des drapeaux (informations supplémentaires)
13
Imene Sghaier-Développement d'Applications Mobiles Natives
14. LES INTENTS
La façon dont sont renseignés ces champs
détermine la nature ainsi que les objectifs de
l'intent.
Ainsi, pour qu'un intent soit dit « explicite », il
suffit que son champ composant soit renseigné. Ce
champ permet de définir le destinataire de l'intent,
celui qui devra le gérer.
Ce champ est constitué de deux informations :
le package où se situe le composant, ainsi que
le nom du composant. Ainsi, quand l'intent sera
exécuté, Android pourra retrouver le composant de
destination de manière précise.
14
Imene Sghaier-Développement d'Applications Mobiles Natives
15. PLAN DU CHAPITRE
La gestion des évènements
Les intents
L’enchainement des écrans avec desL’enchainement des écrans avec des intentsintents explicitesexplicites
Les intents implicites
Actions
Méthodes d’invocations d’intents
Appel Téléphonique
Envoi de mails
Voir tous les contacts
Voir un contact particulier
Editer un contact
Recherche google
Envoi d’un SMS
Afficher photos
Voir une page Web
Géolocalisation par coordonnées longitudes et latitude
Lancer Music Player
Ecouter chanson
Paramètres système
15
Imene Sghaier-Développement d'Applications Mobiles Natives
16. L’ENCHAINEMENT DES ECRANS AVEC DES INTENTS
EXPLICITES
En fait cet Intent est envoyé à l'environnement
d'exécution. Celui ci le redirige vers l'activité concernée
16
Imene Sghaier-Développement d'Applications Mobiles Natives
17. L’ENCHAINEMENT DES ECRANS AVEC DES
INTENTS EXPLICITES
Pour passer d'une activité courante à une nouvelle
activité, il faut écrire le code :
Et il faut bien évidement déclarer la nouvelle activité (le
futur écran) dans le fichier manifest
public void startActivity (Intent intent) est une
méthode de la classe Activity permettant de lancer une
autre Activity (qui affichera un nouvel écran).
17
Intent i = new Intent(getApplicationContext(),
NouvelleActivity.class);
startActivity(i);
Imene Sghaier-Développement d'Applications Mobiles Natives
18. L’ENCHAINEMENT DES ECRANS AVEC DES INTENTS
EXPLICITES
Si on ne s’attend pas à ce que la nouvelle activité nous
renvoie un résultat, alors on peut l'appeler
void startActivity (Intent intent) (elle va commencer
par un onCreate)
Si on veut un résultat en retour de la nouvelle activity
on utilisera la méthode
void startActivityForResult(Intent intent, int
requestCode)
requestCode un code passé qui permet d'identifier
de manière unique un intent.
18
Imene Sghaier-Développement d'Applications Mobiles Natives
19. L’ENCHAINEMENT DES ECRANS AVEC DES INTENTS EXPLICITES
Quand l'activité appelée s'arrêtera, la première
méthode de callback appelée dans l'activité précédente
sera
void onActivityResult(int requestCd, int resultCd, Intent data)
On retrouve requestCd, qui sera le même code que
celui passé dans le startActivityForResult et qui
permet de repérer quel intent a provoqué l'appel de
l'activité dont le cycle vient de s'interrompre.
resultCd est quant à lui un code renvoyé par l'activité
qui indique comment elle s'est terminée
typiquement Activity.RESULT_OK si l'activité s'est terminée
normalement, ou
Activity.RESULT_CANCELED s'il y a eu un problème ou
qu'aucun code de retour n'a été précisé).
Enfin, data est un intent qui contient des données.
19
Imene Sghaier-Développement d'Applications Mobiles Natives
20. L’ENCHAINEMENT DES ECRANS AVEC DES
INTENTS EXPLICITES
Le premier argument du constructeur de l'Intent doit
être le Context de l’application. Si l'appel est fait dans
une activity MonActivity, this est souvent utilisé et
convient car Activity dérive de Context
On utilise souvent MonActivity.this quand on est dans
un listener d'événement. Mais, la méthode
getApplicationContext() est la plus pratique et la
plus sûre.
Les intents ont un champ « extra » qui leur permet de
contenir des données à véhiculer entre les applications.
Un extra est en fait une clé à laquelle on associe une
valeur.
Pour insérer un extra, il suffit d'utiliser la
méthode Intent putExtra(String key, X val) 20
Imene Sghaier-Développement d'Applications Mobiles Natives
21. L’ENCHAINEMENT DES ECRANS AVEC DES
INTENTS EXPLICITES
Les Intent servent d'enveloppes pour passer des
informations d'une Activity à une autre. On utilise
pour cela la m éthode
Exemple
21
public Intent putExtra(String nomDeLExtra, unType valeur)
Intent i = new Intent(leContexte, envoyerFormulaire.class);
i.putExtra("name", nom);
i.putExtra("firstName", prenom);
startActivity(i);
Imene Sghaier-Développement d'Applications Mobiles Natives
22. L’ENCHAINEMENT DES ECRANS AVEC DES INTENTS
EXPLICITES
Dans une Activity, on récupére l'Intent qui a lancé
l'Activity par getIntent(). On peut alors récupérer
tous les extras de l'Intent par getExtras(), et, par la
suite, un extra associé à une entrée par :
getTypeEntrée(nomEntrée, valeurParDefaut),
valeurParDefaut est la valeur retournée si il n'y a
pas d'extra associé à nomEntrée dans l'Intent
On récupère l'information de la manière suivante:
22
Bundle extras = getIntent().getExtras();
String nom = new String(extras.getString("name" ,null));
Ou String nom =getIntent().getExtras().getString("name");
Imene Sghaier-Développement d'Applications Mobiles Natives
23. PLAN DU CHAPITRE
La gestion des évènements
Les intents
L’enchainement des écrans avec des intents explicites
LesLes intentsintents implicitesimplicites
Actions
Méthodes d’invocations d’intents
Appel Téléphonique
Envoi de mails
Voir tous les contacts
Voir un contact particulier
Editer un contact
Recherche google
Envoi d’un SMS
Afficher photos
Voir une page Web
Géolocalisation par coordonnées longitudes et latitude
Lancer Music Player
Ecouter chanson
Paramètres système
23
Imene Sghaier-Développement d'Applications Mobiles Natives
24. LES INTENTS IMPLICITES
À l'opposé des intents explicites se trouvent les intents
implicites
Les intents implicites sont utilisés pour envoyer une requête à
un destinataire, sans savoir qui il est
S'il s'agit de passer la main à une autre application, on donne au
constructeur de l'Intent les données et l'URI (uniform ressource
identifier) cible: l'OS est chargé de trouver une application
pouvant répondre à l'Intent.
Ainsi, les applications destinataires sont soit fournies par
Android, soit par d'autres applications téléchargées sur le Play
Store par exemple.
Dans ce cas, on ne connaît pas de manière précise pour spécifier
le destinataire de l'intent, c'est pourquoi on va s'appliquer à
renseigner d'autres champs pour laisser Android déterminer qui
est capable de réceptionner cet intent.
Il faut au moins fournir deux informations essentielles :
Une action : ce qu'on désire que le destinataire fasse.
Un ensemble de données : sur quelles données le destinataire doit
effectuer son action.
24
Imene Sghaier-Développement d'Applications Mobiles Natives
25. LES INTENTS IMPLICITES
Il existe aussi d'autres informations, pas forcément
obligatoires, mais qui ont aussi leur utilité propre le
moment venu :
La catégorie : permet d'apporter des informations
supplémentaires sur l'action à exécuter et le type de
composant qui devra gérer l'intent.
Le type : pour indiquer quel est le type des données
incluses. Normalement ce type est contenu dans les
données, mais en précisant cet attribut vous pouvez
désactiver cette vérification automatique et imposer un
type particulier.
Les extras : pour ajouter du contenu à vos intents afin de
les faire circuler entre les composants.
Les flags : permettent de modifier le comportement de
l'intent. 25
Imene Sghaier-Développement d'Applications Mobiles Natives
26. LES INTENTS IMPLICITES
L’action d’un intent implicite est une chaîne de
caractères qui symbolise le traitement à déclencher.
De nombreuses constantes sont définies dans le SDK
pour les actions nativement disponibles comme:
Intent.ACTION_WEB_SEARCH pour demander de réaliser
une recherche sur Internet
Intent.ACTION_CALL pour passer un appel téléphonique.
La catégorie, quant à elle, apporte une classification à
l’action.
La catégorie Intent.CATEGORY_LAUNCHER
positionne l’activité comme étant exécutable, cette
catégorie est utilisée de pair avec l’action
Intent.ACTION_MAIN.
Android positionne les activités de cette catégorie dans
le lanceur d’applications.
La catégorie CATEGORY_HOME marque l’activité à
afficher au démarrage du téléphone.
26
Imene Sghaier-Développement d'Applications Mobiles Natives
27. LES INTENTS IMPLICITES
Les données détaillent l’action de l’Intent dont elles
dépendent directement.
Elles peuvent être d’ailleurs nulles, certaines actions
n’appelant pas forcément à devoir être précisées.
Par exemple pour l’action ACTION_CALL, la donnée
sera le numéro de téléphone à composer.
La donné est couplée avec un autre attribut qui est le
type MIME de la donnée à traiter.
27
Imene Sghaier-Développement d'Applications Mobiles Natives
28. LES INTENTS IMPLICITES
Les données sont formatées à l'aide des URI (uniform
ressource identifier)
Un URI est une chaîne de caractères qui permet
d'identifier un endroit. Par exemple sur internet, ou dans
le cas d'Android sur le périphérique ou une ressource.
Afin d'étudier les URI, on va faire l'analogie avec les
adresses URL qui nous permettent d'accéder à des sites
internet. En effet, un peu à la manière d'un serveur, nos
fournisseurs de contenu vont répondre en fonction de l'URI
fournie. De plus, la forme générale d'une URI rappelle
fortement les URL.
Prenons l'exemple du site de ISETN avec une URL
inventée : http://www.isetn.rnu.tn/acceuil/actualités.html
On identifie plusieurs parties :
http://
www.isetn.rnu.tn
/acceuil/actualités.html 28
Imene Sghaier-Développement d'Applications Mobiles Natives
29. LES INTENTS IMPLICITES
La syntaxe d'un URI peut être analysée de la manière
suivante (les parties entre accolades {} sont optionnelles)
:
<schéma><schéma> :: <information><information> {{ ?? <requête><requête> }} {{ ## <fragment><fragment> }}
Le schéma décrit quelle est la nature de l'information.
S'il s'agit d'un numéro de téléphone, alors le schéma
sera tel, s'il s'agit d'un site internet, alors le schéma
sera http, etc.
L'information est la donnée en tant que telle. Cette
information respecte elle aussi une syntaxe, mais qui
dépend du schéma cette fois-ci.
Ainsi, pour un numéro de téléphone, on peut nous
contenter d'insérer le numéro tel:0606060606, mais pour
des coordonnées GPS il faudra séparer la latitude de la
longitude à l'aide d'une virgule geo:123.456789,-12.345678.
Pour un site internet, il s'agit d'un chemin hiérarchique. 29
Imene Sghaier-Développement d'Applications Mobiles Natives
30. LES INTENTS IMPLICITES
Pour créer un objet URI, c'est simple, il suffit
d'utiliser la méthode statique
Par exemple, pour envoyer un SMS à une personne,
on utilisera l'URI :
On peut aussi indiquer plusieurs destinataires et un
corps pour ce message :
30
Uri Uri.parse(String uri);
Uri sms = Uri.parse("sms:0606060606");
Uri.parse("sms:0606060606,0606060607?body=Salut%20lesamies");
Imene Sghaier-Développement d'Applications Mobiles Natives
31. LES INTENTS IMPLICITES
Le MIME est un identifiant pour les formats de fichier.
Par exemple,
type MIME text. Si une donnée est accompagnée du type
MIME text, alors les données sont du texte.
On trouve aussi audioet video par exemple. Il est ensuite
possible de préciser un sous-type afin d'affiner les
informations sur les données, par
exemple audio/mp3 et audio/wav sont deux types MIME qui
indiquent que les données sont sonores, mais aussi de quelle
manière elles sont encodées.
Les types MIME que nous venons de voir son standards,
c'est-à-dire qu'il y a une organisation qui les a reconnus
comme étant légitimes.
Mais si on veut créer ses propres types MIME, il existe
une petite syntaxe à respecter pour les types
personnalisés [https://fr.wikipedia.org/wiki/Type_MIME] 31
Imene Sghaier-Développement d'Applications Mobiles Natives
32. LES INTENTS IMPLICITES- ACTIONS
Liste des actions standard que les intentions peuvent utiliser
pour les activités de lancement (généralement par le biais
startActivity (intention).
32
ACTION_MAIN
ACTION_VIEW
ACTION_ATTACH_DATA
ACTION_EDIT
ACTION_PICK
ACTION_CHOOSER
ACTION_GET_CONTENT
ACTION DIAL
ACTION_ANSWER
ACTION_INSERT
ACTION_DELETE
ACTION_RUN
ACTION_SYNC
ACTION_PICK_ACTIVITY
ACTION_SEARCH
ACTION WEB SEARCH
ACTION_ACTION_CALL
ACTION_SEND
ACTION_SENDTO
ACTION_WEB_ACTION_FACT
ORY_TEST
http://developer.android.com/reference/android/content/Intent.html
Imene Sghaier-Développement d'Applications Mobiles Natives
33. LES INTENTS IMPLICITES- MÉTHODES
D’INVOCATION D’INTENTS
33
Méthodes Fonctionnalités
startActivity(intent) Lance une activity
sendBroadcast(intent) Envoie l’intend à n’importe quel
composant BraodcastReceiver
interessé
startService(intent) ou
binService(intent,…)
Communique avec un service en
arrière plan
Imene Sghaier-Développement d'Applications Mobiles Natives
34. Pour passer d'une activité courante à une nouvelle
activité, il faut écrire le code :
Il ne faut pas oublier d’ajouter les permissions nécessaire
au fichier manifest.xml
<uses-permission
android:name="android.permission.CALL_PHONE" >
</uses-permission>
INTENTS IMPLICITES-APPEL TELPHONIQUE
34
Button b = (Button)findViewById(R.id.Button01);
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);
} });
Imene Sghaier-Développement d'Applications Mobiles Natives
35. LES INTENTS IMPLICITES- ENVOI DE MAILS
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
String[] recipients = new String[]{"my@email.com", "",};
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Message");
emailIntent.setType("text/plain");
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
35
Imene Sghaier-Développement d'Applications Mobiles Natives
36. LES INTENTS IMPLICITES- VOIR TOUS LES CONTACTS
String myData = "content://contacts/people/";
Intent myActivity2 = new Intent(Intent.ACTION_VIEW,
Uri.parse(myData));
startActivity(myActivity2);
36
Imene Sghaier-Développement d'Applications Mobiles Natives
37. LES INTENTS IMPLICITES- VOIR UN CONTACT PARTICULIER
String myData = "content://contacts/people/2";
Intent myActivity2 = new Intent(Intent.ACTION_VIEW,
Uri.parse(myData));
startActivity(myActivity2);
//Ceci affiche le contact numéro 2 dans le repertoire
37
Imene Sghaier-Développement d'Applications Mobiles Natives
38. LES INTENTS IMPLICITES- EDITER UN CONTACT
String myData = "content://contacts/people/2";
Intent myActivity2 = new Intent(Intent.ACTION_EDIT,
Uri.parse(myData));
startActivity(myActivity2);
//Ceci permet d’éditer le contact numéro 2
38
Imene Sghaier-Développement d'Applications Mobiles Natives
39. LES INTENTS IMPLICITES- RECHERCHE GOOGLE
Intent intent = new Intent (Intent.ACTION_WEB_SEARCH );
intent.putExtra(SearchManager.QUERY, "papillons");
startActivity(intent);
//Ceci lance une recherche google à propos des papillons
39
Imene Sghaier-Développement d'Applications Mobiles Natives
40. LES INTENTS IMPLICITES- ENVOI D’UN SMS
Intent intent = new Intent( Intent.ACTION_SENDTO,
Uri.parse("sms:21314151"));
intent.putExtra("sms_body", "Vous allez à la réunion?");
startActivity(intent);
//Ceci envoie un SMS « Vous allez à la réunion? » au
//numéro 21314151
40
Imene Sghaier-Développement d'Applications Mobiles Natives
41. LES INTENTS IMPLICITES- AFFICHER PHOTOS
Intent myIntent = new Intent();
myIntent.setType("image/pictures/*");
myIntent.setAction(Intent.ACTION_GET_CONTENT);
startActivity(myIntent);
//On pourra bien évidement choisir un autre
//repertoire
41
Imene Sghaier-Développement d'Applications Mobiles Natives
42. <uses-permission
android:name="android.permission.INTERNET " >
</uses-permission>
LES INTENTS IMPLICITES- VOIR UNE PAGE WEB
String myData = "http://www.youTube.com";
Intent myActivity2 = new Intent(Intent.ACTION_VIEW,
Uri.parse(myData));
startActivity(myActivity2);
Il ne faut pas oublier d’ajouter les permissions nécessaires
dans le fichier manifeste :
42
Imene Sghaier-Développement d'Applications Mobiles Natives
43. <uses-permission android:name="
android.permission.ACCESS_COARSE_LOCATION " >
</uses-permission>
LES INTENTS IMPLICITES- GEOLOCALISATION PAR
COORDONNÉES LONGITUDE ET LATITUDE
String geoCode ="geo:41.5020952,-81.6789717";
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(geoCode));
startActivity(intent);
43
• Il ne faut pas oublier d’ajouter les permissions
nécessaires dans le fichier manifeste :
Imene Sghaier-Développement d'Applications Mobiles Natives
44. LES INTENTS IMPLICITES- LANCER MUSIC PLAYER
Intent i = new Intent("android.intent.action.MUSIC_PLAYER");
startActivity(i);
44
Imene Sghaier-Développement d'Applications Mobiles Natives
45. LES INTENTS IMPLICITES- ECOUTER CHANSON
SUR CARTE SD
Intent i=new Intent(android.content.Intent.ACTION_VIEW);
Uri data = Uri.parse("file:///sdcard/tiratata.mp3");
String type = "audio/mp3";
i.setDataAndType(data, type);
startActivity(i);
45
Imene Sghaier-Développement d'Applications Mobiles Natives