如何在WhatsApp中共享图像和文本

时间:2018-05-29 17:09:04

标签: android kotlin amazon whatsapp

我有一个共享功能,它应该共享图像和文本。我这样做如下所示

val uri = FileProvider.getUriForFile(context!!,BuildConfig.APPLICATION_ID + ".provider",file)

val intent = Intent(Intent.ACTION_SEND)
intent.putExtra(Intent.EXTRA_STREAM, uri)
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
intent.type = "*/*"

if (etShareMessage.text.isNotEmpty()) {
    intent.putExtra(Intent.EXTRA_TEXT, etShareMessage.text)
}

val title = resources.getString(R.string.screenshot_share_with)

val chooser = Intent.createChooser(intent, title)

// Verify the intent will resolve to at least one activity
if (intent.resolveActivity(activity?.packageManager) != null) {
    startActivity(chooser)
} else {
    ToastUtils.showToast(context,getString(R.string.screenshot_sorry_no_apps_to_share))
    dismiss()
}

适用于GmailHike。但WhatsApp仅显示图像。我已经提到this帖子和其他一些链接。但没有运气。我可以看到Amazon app和Loco应用可以执行此操作。

任何人都可以帮我解决为什么WhatsApp没有从上述意图中获取文本吗?

3 个答案:

答案 0 :(得分:0)

尝试

Intent.ACTION_SEND_MULTIPLE

而不是:

Intent.ACTION_SEND

答案 1 :(得分:0)

if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {

                    Bitmap bm = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
                    Intent intent = new Intent(Intent.ACTION_SEND);
                    intent.putExtra(Intent.EXTRA_TEXT, "YOUR TEXT");
                    String path = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bm, "", null);
                    Uri screenshotUri = Uri.parse(path);

                    intent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
                    intent.setType("image/*");
                    startActivity(Intent.createChooser(intent, "Share image via..."));
                } else {
                    ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
                }

通过这种方法,我们可以将图像分享到whatsapp,图像是在imageView

答案 2 :(得分:0)

经过大量的反复尝试后,我发现通过Intent.EXTRA_TEXT传递文本的方式对WhatsApp来说很重要!!

我刚刚改变了

intent.putExtra(Intent.EXTRA_TEXT, etShareMessage.text)

intent.putExtra(Intent.EXTRA_TEXT, etShareMessage.text.toString())

并且有效。