43 votes

Succès de l'intention de partage pour Android

Comment puis-je savoir si un utilisateur a mené à bien une intention de partage ? Par exemple, si un utilisateur souhaite partager une application via Facebook ou Twitter.

Edit :

Je ne cherche pas à savoir comment créer un Intent pour le partage. Je veux savoir si l'utilisateur a réellement partagé quelque chose. Ou si l'utilisateur a appuyé sur le bouton d'annulation.

25voto

HRJ Points 4750

Je ne pense pas qu'il y ait une manière assurée de le faire.

Vous pouvez lancer l'envoi en utilisant startActivityForResult() et espérer que l'activité qui traite l'intention réponde avec un RESULT_OK . Mais vous ne pouvez pas compter sur le fait qu'il fonctionne toujours.

3voto

A. Kazarovets Points 658

J'ai trouvé l'option, adaptée à Android >= 22. Peut-être que cela peut aider quelqu'un.

A partir d'Android 22, il y a une option pour envoyer IntentSender objet dans createChooser méthode. Vous pouvez créer une intention en attente pour un récepteur de diffusion dans laquelle vous pouvez obtenir le nom du paquet de l'application sur laquelle un utilisateur a cliqué.

Récepteur :

public class MyReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    // do something here
}
}

Manifeste :

<receiver android:name="MyReceiver" android:exported="false"/>

Créer une intention en suspens :

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT);

Et ensuite l'utiliser dans l'intention du sélecteur :

startActivity(Intent.createChooser(share
                            , "some_title"
                            , pendingIntent.getIntentSender()));

Ensuite, dans onReceiver vous pouvez obtenir le nom du paquet de l'application :

String selectedAppPackage = String.valueOf(intent.getExtras().get(EXTRA_CHOSEN_COMPONENT))

Fuente: blogue moyen

2voto

Rony Tesler Points 53

Pour twitter - l'objet "data" dans OnActivityResult est nul lorsque l'utilisateur annule l'action.

-11voto

xagema Points 779

Vous avez utilisé le Intent.ACTION_SEND Le système affiche alors une liste d'applications (sur l'appareil) que vous pouvez partager. Ce site Web explique comment procéder :

http://sudarmuthu.com/blog/sharing-content-in-Android-using-action_send-intent

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