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
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();
}
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
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
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);
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);
}
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:"));
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)));
}
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);
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"));
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
// ...
}
}
});