Loupe

Xamarin : Recevoir du texte depuis une autre app Android

La possibilité de recevoir du texte et des images depuis une autre application est un comportement qui est devenu la norme sur les applications mobiles.

Dans cet article, nous verrons comment activer la réception de données texte via Xamarin Android.

La première étape consiste à modifier la déclaration de l’activité qui va recevoir les données.
Dans notre exemple, nous allons modifier la MainActivity mais si vous en avez le besoin vous pouvez créer une activité dédiée.

Dans le fichier MainActivity.cs il faut ajouter le using suivant :

1
using Android.Content;

Cela permet d’avoir accès à la classe Intent.

Sur la classe MainActivity, nous ajoutons l’attribut IntentFilter et nous déclarons que nous acceptons les actions Send et SendMultiple :

1
2
3
4
[IntentFilter(
    new[] { Intent.ActionSend, Intent.ActionSendMultiple },
    Categories = new[] { Intent.CategoryBrowsable, Intent.CategoryDefault        },
 DataMimeType = "text/plain")]

Puis, pour récupérer le texte envoyé à votre app c’est très simple :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
protected override void OnCreate(Bundle savedInstanceState)
 {
 
     base.OnCreate(savedInstanceState);
     // votre code ici
     // récupération du type
     var type = Intent.Type;
 
     // récupération de l'action
     var action = Intent.Action;
     if (Intent.ActionSend == action && Intent.Type != null)
     {
         if ("text/plain" == type)
         {
             string sharedText = Intent.GetStringExtra(Intent.ExtraText);
         }
     }
     else if (Intent.ActionSendMultiple == action && type != null)
     {
         if ("text/plain" == type)
         {
             string sharedText = Intent.GetStringArrayExtra(Intent.ExtraText);
         }
     }
 }

Maintenant, quand vous partagez un texte, votre application est disponible dans la liste des apps acceptant le texte :

L’application est bien dans listes des applications acceptant le partage texte

Happy coding 🙂

Pour aller plus loin :

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus