190 votes

Android: Partager du texte brut en utilisant intent (à toutes les applications de messagerie)

Je suis en train d'essayer de partager du texte en utilisant un intent :

Intent i = new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");  
i.putExtra(android.content.Intent.EXTRA_TEXT, "TEXTE");

et en l'enveloppant avec le chooser :

startActivity(Intent.createChooser(sms, getResources().getString(R.string.share_using)));

ça marche ! mais uniquement pour l'application email.
ce dont j'ai besoin est un intent général pour toutes les applications de messagerie : emails, SMS, IM (Whatsapp, Viber, Gmail, SMS...) j'ai essayé en utilisant android.content.Intent.ACTION_VIEW et j'ai essayé en utilisant i.setType("vnd.android-dir/mms-sms"); rien n'a aidé...

("vnd.android-dir/mms-sms" partagé en utilisant les SMS uniquement !)

4voto

NN73 Player Points 64

En créant une intention en utilisant ACTION_SEND, vous pourrez ajouter du texte supplémentaire en utilisant Intent.EXTRA_TEXT, le deuxième argument est le texte que vous souhaitez partager. Ensuite, en définissant le type de partage comme text/plain, le service Intent vous affichera toutes les applications prenant en charge le partage de texte

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Ceci est mon texte à envoyer.");
sendIntent.setType("text/plain");

Intent shareIntent = Intent.createChooser(sendIntent, null);
startActivity(shareIntent);

1voto

Images ou données binaires :

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/jpg");
Uri uri = Uri.fromFile(new File(getFilesDir(), "foo.jpg"));
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri.toString());
startActivity(Intent.createChooser(sharingIntent, "Partager l'image en utilisant"));

ou HTML :

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/html");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("Ceci est le texte partagé."));
startActivity(Intent.createChooser(sharingIntent,"Partager en utilisant"));

1voto

Rohit S Points 464

Kotlin

À l'intérieur du listener de clic, il est nécessaire d'ajouter ce module pour partager du texte via des applications telles que WhatsApp, e-mail comme Gmail, Slack..

shareOptionClicked.setOnClickListener{
     val shareText = Intent(Intent.ACTION_SEND)
     shareText.type = "text/plain"
     val dataToShare = "Message de mon application"
     shareText.putExtra(Intent.EXTRA_SUBJECT, "Sujet de mon application")
     shareText.putExtra(Intent.EXTRA_TEXT, dataToShare)
     startActivity(Intent.createChooser(shareText, "Partager Via"))
     }

0voto

Din Islam Milon Points 61

Ce code est pour le partage via SMS

     String smsBody="Corps du SMS";
     Intent sendIntent = new Intent(Intent.ACTION_VIEW);
     sendIntent.putExtra("sms_body", smsBody);
     sendIntent.setType("vnd.android-dir/mms-sms");
     startActivity(sendIntent);

0voto

Jar Droid Points 21

Code de travail à 100 % pour le partage Gmail

    Intent intent = new Intent (Intent.ACTION_SEND);
    intent.setType("message/rfc822");
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"anyMail@gmail.com"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "Tout sujet si vous le souhaitez");
    intent.setPackage("com.google.android.gm");
    if (intent.resolveActivity(getPackageManager())!=null)
        startActivity(intent);
    else
        Toast.makeText(this,"L'application Gmail n'est pas installée",Toast.LENGTH_SHORT).show();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X