Поделиться приложением "ссылка" в Android - PullRequest
84 голосов
/ 11 февраля 2011

Я хочу, чтобы пользователь моего приложения мог поделиться / рекомендовать мое приложение другим пользователям.Я использую намерение ACTION_SEND.Я добавляю простой текст, говорящий что-то вроде: установите это классное приложение.Но я не могу найти способ, чтобы пользователи могли напрямую перейти, например, к экрану установки на рынке.Все, что я могу им предоставить - это веб-ссылка или какой-нибудь текст.Другими словами, я ищу очень прямой способ для пользователей Android установить мое приложение.

Спасибо за любую помощь / указатели,

Thomas

Ответы [ 10 ]

211 голосов
/ 09 июня 2012

Это позволит вам выбрать из электронной почты, WhatsApp или любой другой.

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();
}   
21 голосов
/ 23 сентября 2017

Вы также можете использовать ShareCompat класс из библиотеки поддержки.

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

20 голосов
/ 11 февраля 2011

Томас,

Вы хотите предоставить своим пользователям ссылку market://, которая приведет их непосредственно на страницу сведений о вашем приложении. Следующее от developer.android.com:

Загрузка страницы сведений о приложении

В Android Market каждое приложение имеет страницу сведений, которая предоставляет Обзор приложения для пользователей. Например, страница содержит короткий описание приложения и экрана снимки его в использовании, если предоставлены разработчик, а также отзывы от пользователи и информация о разработчик. Страница сведений также включает кнопку «Установить», которая позволяет пользователь запускает загрузку / покупку заявки.

Если вы хотите отослать пользователя к конкретное приложение, ваш приложение может принять пользователь напрямую на страницу сведений о приложении. к сделать так, ваше приложение отправляет ACTION_VIEW Намерение, которое включает URI и параметр запроса в этом формате:

рынок: // подробнее ID =

В этом случае имя пакета параметр целевого приложения полное имя пакета, как объявлено в атрибуте пакета элемент манифеста в файл манифеста приложения. За Пример:

рынок: // Детали ID = com.example.android.jetboy

Источник: http://developer.android.com/guide/publishing/publishing.html

9 голосов
/ 24 сентября 2016

Вызовите этот метод:

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);
}
9 голосов
/ 15 ноября 2011

Точнее,

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

или если вы хотите поделиться своими другими приложениями с вашим разработчиком.аккаунт вы можете сделать что-то вроде этого

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id=Your_Publisher_Name"));
startActivity(intent);
5 голосов
/ 07 сентября 2016

Для автоматического заполнения имени приложения и идентификатора приложения вы можете использовать это:

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 голосов
/ 12 августа 2017

Поделиться приложением с заголовком - это ваше имя_приложения, содержание - это ссылка на ваше приложение

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)));
}
2 голосов
/ 03 апреля 2017

Я знаю, что на этот вопрос ответили, но я хотел бы поделиться альтернативным решением:

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 голос
/ 22 августа 2017

наконец-то этот код сработал для меня, чтобы открыть почтовый клиент нашего андроида.попробуйте этот фрагмент.

Intent testIntent = new Intent(Intent.ACTION_VIEW);
                    Uri data = Uri.parse("mailto:?subject=" + "Feedback" + "&body=" + "Write Feedback here....." + "&to=" + "someone@example.com");
                    testIntent.setData(data);
                    startActivity(testIntent);
0 голосов
/ 21 сентября 2017

На самом деле лучший способ разделить ваше приложение между пользователями, Google (FireBase) доказал новую технологию Firebase Dynamic Link Через несколько строк вы можете сделать это документация https://firebase.google.com/docs/dynamic-links/ и код

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