62 votes

Android - Partager sur Facebook, Twitter, Mail, etc.

J'ai besoin de développer une application qui a la fonction de partage. Je dois partager sur Facebook, Twitter, email et peut-être d'autres services.

Comment puis-je faire ceci? Il y a une bibliothèque sur le net ? Pour le développement iOS il y avait ShareKit, mais pour Android ?

Merci :)

88voto

Janusz Points 52607

La réponse de Paresh Mayani est en grande partie correcte. Utilisez simplement une intention de diffusion pour laisser le système et toutes les autres applications choisir de quelle manière le contenu sera partagé.

Pour partager du texte, utilisez le code suivant :

 String message = "Text I want to share.";
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, message);

startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

37voto

Ionut Negru Points 570

oui vous pouvez ... il vous suffit de connaître le nom exact du package de l'application :

  • Facebook - "com.facebook.katana"
  • Twitter - "com.twitter.android"
  • Instagram - "com.instagram.android"
  • Pinterest - "com.pinterest"

Et vous pouvez créer l'intention comme ceci

 Intent intent = context.getPackageManager().getLaunchIntentForPackage(application);
if (intent != null) {
     // The application exists
     Intent shareIntent = new Intent();
     shareIntent.setAction(Intent.ACTION_SEND);
     shareIntent.setPackage(application);

     shareIntent.putExtra(android.content.Intent.EXTRA_TITLE, title);
     shareIntent.putExtra(Intent.EXTRA_TEXT, description);
     // Start the specific social application
     context.startActivity(shareIntent);
} else {
    // The application does not exist
    // Open GooglePlay or use the default system picker
}

6voto

Sunil Chaudhary Points 597

Utilisez ceci

 Facebook - "com.facebook.katana"
Twitter - "com.twitter.android"
Instagram - "com.instagram.android"
Pinterest - "com.pinterest"



SharingToSocialMedia("com.facebook.katana")


public void SharingToSocialMedia(String application) {

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.setType("image/*");
    intent.putExtra(Intent.EXTRA_STREAM, bmpUri);

    boolean installed = checkAppInstall(application);
    if (installed) {
        intent.setPackage(application);
        startActivity(intent);
    } else {
        Toast.makeText(getApplicationContext(),
                "Installed application first", Toast.LENGTH_LONG).show();
    }

}


 private boolean checkAppInstall(String uri) {
    PackageManager pm = getPackageManager();
    try {
        pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
        return true;
    } catch (PackageManager.NameNotFoundException e) {
    }

    return false;
}

4voto

RAJESH Points 103

L'ACTION_SEND fonctionnera correctement pour tous et il faudra le corps du texte au mur dans Twitter, G mail.. mais il échoue pour la page Face Book... C'est un bogue connu dans le SDK Android de Facebook. je l'ai réparé

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