Как создать кнопку «Поделиться» для WhatsApp, Facebook или других приложений, установленных на моем телефоне - PullRequest
0 голосов
/ 10 апреля 2020

Я занимаюсь разработкой приложения, в котором я хочу поделиться ТЕКСТОМ и ИЗОБРАЖЕНИЕМ с другими приложениями, установленными на моем телефоне. Но когда я нажимаю кнопку «Поделиться», ни «ТЕКСТ», ни «ИЗОБРАЖЕНИЕ» не делятся пустыми данными, это перенаправляет меня в другое приложение, которое я выбрал для обмена. ниже postDescription и postImage являются моими методами класса модели, и я проверил, что я получаю значения не в тосте, он дает там значения правильно.

Ниже приведен код:

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                shareIntent.setType("image/*");
                shareIntent.putExtra(Intent.EXTRA_TEXT, postDescription);

                Uri uri = Uri.parse(postImage);
                shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
                context.startActivity(Intent.createChooser(shareIntent, "Share With"));

Таким образом, вышеупомянутая группа кода не работала, затем я нашел код, через который я могу поделиться своим постом TEXT и IMAGE только в WhatsApp, я пробовал это, но он показывает формат файла не поддерживается внутри WhatsApp.

ниже приведен код для обмена только с WhatsApp:

  Uri imgUri = Uri.parse(postImage);
            Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
            whatsappIntent.setType("text/plain");
            whatsappIntent.setPackage("com.whatsapp");
            whatsappIntent.putExtra(Intent.EXTRA_TEXT, postDescription );
            whatsappIntent.putExtra(Intent.EXTRA_STREAM, imgUri);
            whatsappIntent.setType("image/jpeg");
            whatsappIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

            try {
                context.startActivity(whatsappIntent);
            } catch (android.content.ActivityNotFoundException ex) {

                Toast.makeText(context, "Whatsapp have not been installed.", Toast.LENGTH_SHORT).show();
            }

Я хочу знать Как создать кнопку «Поделиться», которая прекрасно работает для WhatsApp, и все или только WhatsApp сделает всю работу за меня.

1 Ответ

0 голосов
/ 10 апреля 2020

Удалив пакет из намерения, Android должен отобразить список приложений, которые могут обрабатывать тип намерения.

Uri imgUri = Uri.parse(postImage); //Provide the URI to the downloaded image, not an external URL
Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
whatsappIntent.setType("*/*");
whatsappIntent.putExtra(Intent.EXTRA_TEXT, postDescription );
whatsappIntent.putExtra(Intent.EXTRA_STREAM, imgUri);
if (whatsappIntent.resolveActivity(packageManager) != null) {
    startActivity(whatsappIntent)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...