126 votes

Partager l'application "link" dans Android

Je souhaite que les utilisateurs de mon application puissent la partager ou la recommander à d'autres utilisateurs. J'utilise l'intention ACTION_SEND. J'ajoute un texte en clair qui dit quelque chose comme : installez cette application sympa. Mais je n'arrive pas à trouver un moyen de permettre aux utilisateurs d'aller directement à l'écran d'installation de la place de marché par exemple. Tout ce que je peux leur fournir, c'est un lien web ou du texte. En d'autres termes, je cherche un moyen très direct pour les utilisateurs d'Android d'installer mon application.

Merci de votre aide et de vos conseils,

Thomas

2voto

Zohab Ali Points 1028

Selon le documents officiels de 2021 est la suivante

fun shareTextToOtherApps(message: String) {
        val sendIntent: Intent = Intent().apply {
            action = Intent.ACTION_SEND
            putExtra(Intent.EXTRA_TEXT, message)
            type = "text/plain"
        }

        val shareIntent = Intent.createChooser(sendIntent, null)
        startActivity(shareIntent)
    }

1voto

ahmad Points 25

En fait, la meilleure façon de partager votre application entre les utilisateurs, Google (firebase) a prouvé une nouvelle technologie Firebase Dynamic Link A travers plusieurs lignes, vous pouvez le faire. [ ] https://firebase.google.com/docs/dynamic-links/ et le code est

  Uri dynamicLinkUri = dynamicLink.getUri();
      Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
            .setLink(Uri.parse("https://www.google.jo/"))
            .setDynamicLinkDomain("rw4r7.app.goo.gl")
            .buildShortDynamicLink()
            .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
                @Override
                public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                    if (task.isSuccessful()) {
                        // Short link created
                        Uri shortLink = task.getResult().getShortLink();
                        Uri flowchartLink = task.getResult().getPreviewLink();
                        Intent intent = new Intent();
                        intent.setAction(Intent.ACTION_SEND);
                        intent.putExtra(Intent.EXTRA_TEXT,  shortLink.toString());
                        intent.setType("text/plain");
                        startActivity(intent);
                    } else {
                        // Error
                        // ...
                    }
                }
            });

1voto

Jayesh Dankhara Points 76
try { 
Intent shareIntent = new Intent(Intent.ACTION_SEND);  
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Your Application name");
String shareMessage= "\n Your Message \n\n";
shareMessage = shareMessage + "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID +"\n\n";
shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);  
startActivity(Intent.createChooser(shareIntent, "choose one"));
} catch(Exception e) { 
//e.toString();
}

0voto

Shahid Ghafoor Points 461

La réponse de @Linh est presque bonne mais provoque un crash à cause du FLAG_ACTIVITY_NEW_TASK manquant, voici ce qui a fonctionné pour moi

    public static void shareApp(Context context) {
    final String appPackageName = context.getPackageName();
    Intent sendIntent = new Intent();
    sendIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, "Check out the App at: https://play.google.com/store/apps/details?id=" + appPackageName);
    sendIntent.setType("text/plain");
    context.startActivity(sendIntent);
}

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