web-dev-qa-db-fra.com

Partager l'application "lien" dans Android

Je souhaite que mon utilisateur d'application puisse partager/recommander mon application à d'autres utilisateurs. J'utilise l'intention ACTION_SEND. J'ajoute du texte brut disant quelque chose du genre: installez cette application géniale. Mais je ne trouve pas le moyen de permettre aux utilisateurs d’aller directement à l’écran d’installation du marché, par exemple. Tout ce que je peux leur fournir, c'est un lien Web ou du texte ..__ En d'autres termes, je recherche un moyen très direct pour les utilisateurs d'Android d'installer mon application.

Merci pour toute aide/pointeurs,

Thomas

76
Thomas

Cela vous permettra de choisir entre email, WhatsApp ou autre chose.

try { 
    Intent shareIntent = new Intent(Intent.ACTION_SEND);  
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, "My application name");
    String shareMessage= "\nLet me recommend you this application\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();
}   
194
Ton

Thomas,

Vous voudriez fournir à vos utilisateurs un lien market:// qui les mènera directement à la page de détails de votre application. Ce qui suit provient de developer.Android.com:

Chargement de la page de détails d'une application

Dans Android Market, chaque application a une page de détails qui fournit un aperçu de l'application pour les utilisateurs . Par exemple, la page comprend un court description de l'application et de l'écran plans de celui-ci en cours d'utilisation, s'il est fourni par le développeur, ainsi que les commentaires de utilisateurs et informations sur le développeur. La page Détails aussi inclut un bouton "Installer" qui permet à l'utilisateur déclenche le téléchargement/achat de l'application.

Si vous souhaitez renvoyer l'utilisateur à un application spécifique, votre l'application peut prendre l'utilisateur directement à la page Détails de l'application. À Pour ce faire, votre application envoie un ACTION_VIEW Intention qui inclut un URI et paramètre de requête dans ce format:

marché: // détails? id =

Dans ce cas, le nom de fichier paramètre est le .__ de l'application cible. nom complet du paquet, comme déclarée dans l'attribut package de l'élément manifeste dans le fichier manifeste de l'application. Pour Exemple:

market: // details? id = com.example.Android.jetboy

Source: http://developer.Android.com/guide/publishing/publishing.html

20
Will Tate

Vous pouvez également utiliser la classe ShareCompat de la bibliothèque de support.

ShareCompat.IntentBuilder.from(activity)
    .setType("text/plain")
    .setChooserTitle("Chooser title")
    .setText("http://play.google.com/store/apps/details?id=" + activity.getPackageName())
    .startChooser();

https://developer.Android.com/reference/Android/support/v4/app/ShareCompat.html

18
lukjar

Pour être plus précis 

   Intent intent = new Intent(Intent.ACTION_VIEW);
   intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.Android.example"));
   startActivity(intent);

ou si vous souhaitez partager vos autres applications à partir de votre dev. compte, vous pouvez faire quelque chose comme ça

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id=Your_Publisher_Name"));
startActivity(intent);
9
OWADVL

Appelez cette méthode:

public static void shareApp(Context context)
{
    final String appPackageName = context.getPackageName();
    Intent sendIntent = new Intent();
    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);
}
8
Nilesh Panchal

Pour renseigner automatiquement le nom et l'identifiant de l'application, vous pouvez utiliser ceci:

int applicationNameId = context.getApplicationInfo().labelRes;
final String appPackageName = context.getPackageName();
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, activity.getString(applicationNameId));
String text = "Install this cool application: ";
String link = "https://play.google.com/store/apps/details?id=" + appPackageName;
i.putExtra(Intent.EXTRA_TEXT, text + " " + link);
startActivity(Intent.createChooser(i, "Share link:"));
4
Ben Groot

Partager l'application avec le titre est votre nom_app, le contenu est le lien de votre application.

private static void shareApp(Context context) {
    final String appPackageName = BuildConfig.APPLICATION_ID;
    final String appName = context.getString(R.string.app_name);
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    String shareBodyText = "https://play.google.com/store/apps/details?id=" +
            appPackageName;
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, appName);
    shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText);
    context.startActivity(Intent.createChooser(shareIntent, context.getString(R.string
            .share_with)));
}
3
Linh

enfin ce code est travaillé pour moi pour ouvrir le client email de notre Android essayez cet extrait.

Intent testIntent = new Intent(Intent.ACTION_VIEW);
                    Uri data = Uri.parse("mailto:?subject=" + "Feedback" + "&body=" + "Write Feedback here....." + "&to=" + "[email protected]");
                    testIntent.setData(data);
                    startActivity(testIntent);
1
Kishan Vasoya

Je sais que cette question a reçu une réponse, mais je voudrais partager une solution alternative:

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
String shareSubText = "WhatsApp - The Great Chat App";
String shareBodyText = "https://play.google.com/store/apps/details?id=com.whatsapp&hl=en";
shareIntent.putExtra(Intent.EXTRA_SUBJECT, shareSubText);
shareIntent.putExtra(Intent.EXTRA_TEXT, shareBodyText);
startActivity(Intent.createChooser(shareIntent, "Share With"));
1
Amit Mhaske

En fait, le meilleur moyen de diviser votre application entre les utilisateurs, Google (firebase) a prouvé sa nouvelle technologie. Firebase Dynamic Link Vous pouvez le créer à l'aide de plusieurs lignes C'est de la documentation 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
                        // ...
                    }
                }
            });
0
ahmad