【问题标题】:Share image on whatsapp in Android "The file format is not supported." error在 Android 中的 whatsapp 上共享图像“不支持文件格式。”错误
【发布时间】:2016-12-09 13:12:58
【问题描述】:

我在 android 的 whatsapp 上有一个共享图像的应用程序。它一直工作到现在。但现在我收到以下错误

“不支持该文件格式。”

代码没有任何变化。

btnWhatsapp.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {   

        if (isAppInstalled("com.whatsapp"))   {
           // APP  INSTALLED
           Intent sendIntent = new Intent(Intent.ACTION_SEND);
           String sharetext ="Try my app";
           sendIntent.putExtra(Intent.EXTRA_TEXT,sharetext );
           Uri screenshotUri = Uri.parse("android.resource://"+getPackageName()+"/drawable/"+logofilename);
           sendIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
           sendIntent.setType("image/png");
           sendIntent.setPackage("com.whatsapp");
           v.getContext().startActivity(sendIntent);

        }else{
                        Toast.makeText(getApplicationContext(),R.string.nowhatsapp,Toast.LENGTH_SHORT).show();
                }                   
            }
       });

【问题讨论】:

  • android.resource 是一种不常见的Uri 方案,可能并非所有应用都支持。此外,ACTION_SEND 实现不必在同一个Intent 上同时尊重EXTRA_TEXTEXTRA_STREAM
  • 遇到同样的错误你找到解决办法了吗?
  • 找到解决办法了吗?
  • 我遇到了同样的错误。有什么解决办法吗?
  • 2022年有什么解决办法?

标签: android share whatsapp file-format


【解决方案1】:

您尝试共享的文件位于包(您的应用)中,只有您的应用可以访问该文件。 您需要共享一个公共文件

share.putExtra(Intent.EXTRA_STREAM,
        Uri.parse( Environment.getExternalStorageDirectory()+ File.separator+"temporary_file.jpg"));

像这个其他应用一样可以访问

【讨论】:

  • 但图像在我的应用程序可绘制目录中。
  • 你可以把drawable复制到读到位图的sd卡中,并用new file()保存,共享该文件,然后删除它,你会保持干净
【解决方案2】:

您需要将图片从 url 下载到 sdcard 并从 sdcard 中选择路径以共享到 whatsapp

【讨论】:

    【解决方案3】:
    Uri imgUri = Uri.parse(pictureFile.getAbsolutePath());
    Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
    whatsappIntent.setType("text/plain");
    whatsappIntent.setPackage("com.whatsapp");
    whatsappIntent.putExtra(Intent.EXTRA_TEXT, "The text you wanted to share");
    whatsappIntent.putExtra(Intent.EXTRA_STREAM, imgUri);
    whatsappIntent.setType("image/jpeg");
    whatsappIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    
    try {
        activity.startActivity(whatsappIntent);
    } catch (android.content.ActivityNotFoundException ex) {
        ToastHelper.MakeShortText("Whatsapp have not been installed.");
    }
    

    【讨论】:

      【解决方案4】:

      检查你应用的权限,在应用权限中开启存储权限,就可以解决你的问题了。

      【讨论】:

        猜你喜欢
        • 2016-10-16
        • 2020-06-16
        • 2021-11-18
        • 2018-01-26
        • 1970-01-01
        • 2014-09-05
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        相关资源
        最近更新 更多