0% ont trouvé ce document utile (0 vote)
65 vues12 pages

Rogrammation Obile: Miloud LAHMAIM Rssp2 2023-2024

Cet article décrit comment utiliser les intents en Kotlin pour lancer des activités, passer des données entre activités, partager du contenu, ouvrir des liens web, composer des appels téléphoniques, ouvrir des emplacements sur une carte, lire des médias et gérer des événements sur les vues comme les clics. Il présente également des méthodes pour afficher des messages de dialogue.

Transféré par

h.elkhattat5772
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
65 vues12 pages

Rogrammation Obile: Miloud LAHMAIM Rssp2 2023-2024

Cet article décrit comment utiliser les intents en Kotlin pour lancer des activités, passer des données entre activités, partager du contenu, ouvrir des liens web, composer des appels téléphoniques, ouvrir des emplacements sur une carte, lire des médias et gérer des événements sur les vues comme les clics. Il présente également des méthodes pour afficher des messages de dialogue.

Transféré par

h.elkhattat5772
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

S8 PROGRAMMATION MOBILE

Miloud LAHMAIM
RSSP2
2023-2024
Intent : lancement d’une activité
 Un intent est un objet qui est utilisé pour démarrer une nouvelle activité dans votre
application, pour lancer une activité dans une autre application, ou pour lancer un service qui
effectue une tâche en arrière-plan.

 Pour lancer une autre activité :


val intent = Intent(this, AutreActivite::class.java)
startActivity(intent)

 Les intents peuvent également être utilisés pour passer des données entre des activités :
val intent = Intent(this, AutreActivite::class.java)
intent.putExtra("nomVar", valeurVar)
startActivity(intent)

 Pour récupérer cette valeur dans l’autre activité :


val message = intent.getTYPEExtra("nomVar")

 finish() fait terminer l’activité courante. L’utilisateur ne pourra pas faire back dessus,
car elle disparaît de la pile.
2
Intent : attente de résultats
 Les intents peuvent également être utilisés pour lancer une activité et attendre un résultat:

val intent = Intent(this, AutreActivite::class.java)


startActivityForResult(intent, RESULT_CODE)

 Dans l'activité de destination, renvoyez le résultat en utilisant setResult() et en incluant le


résultat dans un objet Intent :
val resultat = "Données renvoyées depuis l'activité de destination."
val intent = Intent()
intent.putExtra("resultat", resultat)
setResult(Activity.RESULT_OK, intent)
finish()

 Dans l'activité appelante, implémentez la méthode onActivityResult() pour recevoir le


résultat de l'activité de destination :
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
val resultat = data?.getStringExtra("resultat")
// Faire quelque chose avec le résultat renvoyé
}
} 3
Intent : Partager
 Pour partager du texte on peut utiliser le code suivant :

val message = "Hello, voici le contenu que je veux partager!"


val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type ="text/plain"
shareIntent.putExtra(Intent.EXTRA_TEXT, message)
startActivity(Intent.createChooser(shareIntent, "Partager via"))

 Dans cet exemple, nous créons une intention pour partager le texte message en utilisant l'action
ACTION_SEND.
 Nous spécifions également le type de contenu en tant que text/plain, et nous ajoutons le contenu à
partager en tant que paramètre supplémentaire de l'intention en utilisant la constante
EXTRA_TEXT.
 Enfin, nous utilisons la méthode createChooser() pour lancer l'application de partage système avec
une boîte de dialogue de sélection qui permet à l'utilisateur de choisir l'application avec laquelle il
souhaite partager le contenu.
 Notez que le contenu partagé peut être de différents types, tels que du texte, des images ou des
fichiers. Pour partager du contenu autre que du texte, vous devez spécifier le type de contenu
approprié et transmettre le contenu en tant que données (data) ou fichier (file) via l'intention. 4
Intent : Ouvrir un lien web
 Pour ouvrir un lien vers un site web on peut utiliser le code suivant :

val uri= Uri.parse("http://www.ensa.ac.ma")


val intent=Intent(Intent.ACTION_VIEW,uri)
startActivity(intent)

 Dans ce code, nous créons une Uri en utilisant la méthode parse() avec l'URL que nous
voulons ouvrir dans un navigateur.

 Nous utilisons ensuite cette Uri pour créer une intention avec l'action ACTION_VIEW, qui
spécifie que nous voulons afficher quelque chose, dans ce cas, une page web.

 Enfin, nous lançons cette intention avec la méthode startActivity() pour ouvrir le navigateur
et afficher la page web correspondante.

 L'utilisation de l'intention ACTION_VIEW avec une Uri est très courante en Kotlin Android
pour ouvrir différents types de contenu, tels que des pages web, des fichiers, des images, des
vidéos, etc. En utilisant cette intention, l'application Android lance l'application appropriée
pour afficher le contenu, selon les préférences de l'utilisateur.
5
Intent : Composer/Passer un appel
 Pour composer un appel téléphonique on peut utiliser le code suivant :

val uri= Uri.parse("tel:0656565656")


val intent=Intent(Intent.ACTION_DIAL,uri)
startActivity(intent)

 Ce code crée une intention pour lancer l'application de numérotation du téléphone avec le
numéro de téléphone pré-rempli spécifié, puis il démarre cette intention avec la méthode
startActivity().

 Notez que l'utilisation de l'intention ACTION_DIAL ne nécessite pas la permission


CALL_PHONE dans le fichier AndroidManifest.xml, car elle ne passe pas immédiatement
l'appel, mais ouvre l'application de numérotation avec le numéro de téléphone pré-rempli.
Cependant, l'utilisateur devra appuyer sur le bouton d'appel pour lancer l'appel effectif.

6
Intent : Ouvrir un emplacement MAPS
 Pour ouvrir un emplacement sur la carte MAPS on peut utiliser le code suivant :
val latitude = 31.645955
val longitude = -8.0200795
val label = "ENSA de Marrakech"
val uri = Uri.parse("geo:$latitude,$longitude?q=$label")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)

 Dans cet exemple, nous créons une Uri à partir des coordonnées de latitude et de longitude
du lieu que nous voulons afficher, ainsi que d'une étiquette pour le lieu.

 Nous utilisons ensuite cette Uri pour créer une intention avec l'action ACTION_VIEW qui
spécifie l'ouverture de l'application de cartographie.

 Enfin, nous lançons cette intention avec la méthode startActivity().L'URI que nous avons
créé est de la forme geo:latitude,longitude?q=label, où latitude et longitude sont les
coordonnées du lieu et label est l'étiquette que nous avons spécifiée pour le lieu.

 Vous pouvez personnaliser l'URI en ajoutant des paramètres supplémentaires pour


spécifier l'échelle, le type de carte et d'autres options.
7
Média (audio + vidéo)
 Les média sont souvent placés dans le dossier raw
 Pour lire un fichier audio :
MediaPlayer.create(this, R.raw.NomDuFichierAudio).start()

 Pour lire un fichier vidéo :

 Ajouter un view de type VideoView


 Récupérer cette view et utiliser le code suivant pour une vidéo locale :

videoView.setVideoPath("android.resource://" + packageName + "/" + R.raw.video)

 Récupérer cette view et utiliser le code suivant pour une vidéo distante :

val videoUri = Uri.parse("https://example.com/video.mp4")


videoView.setVideoURI(videoUri)

8
Actions sur les vues
 Les événements de vue sont des actions déclenchées par l'utilisateur, telles que :
 Clic (2 méthodes) :
méthode1 : maFonction dans la classe de l’activité & l’attribut onClick dans le vue
fun maFonction(view: View) {} android:onClick="maFonction"

méthode2 : En utilisant un lisetner pour le vue dans la classe de l’activité :


view.setOnClickListener(){
// Code à exécuter lors du clic sur le bouton
}
 Long clic : remplacer setOnClickListener par setOnLongClickListener

 Changement : Lorsqu'une vue change d'état, par exemple lorsqu'une case à cocher est cochée :
checkBox.setOnCheckedChangeListener{ buttonView, isChecked ->
// Code à exécuter lorsque l'état de la case à cocher change
}

 Survoler : setOnHoverListner()

 ……
9
Messages de dialogue
 Quelques méthodes pour afficher un message :
 Toast :
Toast.makeText(applicationContext, "Le message!", Toast.LENGTH_SHORT).show()

 AlertDialog : on peut ajouter différents buttons (Positive, Negative et Neutral)


val builder = AlertDialog.Builder(this)
builder.setTitle("Title")
builder.setMessage("Message")
builder.setPositiveButton("OK") { dialog, which ->
// Do something when OK button is clicked
}.show()

 SnackBar :

Snackbar.make(view, "Hello, World!", Snackbar.LENGTH_LONG).show()

 TextView : avec color et visibility ou isVisible

10
Vibration
 Voici les étapes à suivre pour ajouter une vibration à votre application Android en Kotlin :

 Ajouter la permission VIBRATE dans le fichier AndroidManifest.xml :


<uses-permission android:name="android.permission.VIBRATE"/>

 Récupérer une instance de la classe Vibrator :

val vibreur = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator


//vérifier l'existence du vibreur
if (vibreur.hasVibrator()) {
// Effectuer une vibration d'une seconde
vibreur.vibrate(1000)
}

11
Connectivité internet
fun connectedToInternet(): Boolean {
var lastResult = false
for (i in 1..4) {
val process = Runtime.getRuntime().exec("ping -c 1 google.com")
val input = BufferedReader(InputStreamReader(process.inputStream))
val output = StringBuffer()
var line: String? = null
while ({ line = input.readLine(); line }() != null) { output.append(line) }
val exitCode = process.waitFor()
if (exitCode == 0) lastResult = true
}
return lastResult }

 Cette fonction utilise la classe InetAddress pour exécuter la commande ping et récupérer la
sortie. Elle exécute 4 requêtes ping vers Google en utilisant une boucle for et stocke le résultat
de la dernière requête dans une variable lastResult. La valeur de retour de la fonction est le
résultat de la dernière requête, qui est de type booléen (true si la dernière requête a réussi,
false sinon).

 Notez que cette fonction nécessite des autorisations Internet dans votre manifeste Android
pour fonctionner correctement.
12

Vous aimerez peut-être aussi