当前位置: 首页 > 知识库问答 >
问题:

Android Share Intent图像共享不工作

井学
2023-03-14

我是Android新手,在通过共享意图共享图像时遇到了问题。我在谷歌上搜索了很多,尝试了各种方法,但仍然找不到解决方案。

我的代码是:

            Intent shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setType("image/*");
            shareIntent.putExtra(Intent.EXTRA_STREAM,uri);
            this.startActivityForResult(Intent.createChooser(shareIntent,"Share with"),12);

我检查了uri,保存的文件是位图及其返回文件。但是共享过程中显示的图像无效。Gmail说它无法附加附件,消息应用程序无法加载图像。

文本共享工作正常。

基本上,我正在为Unity编写一个插件。这是我在Unity方面的代码:

string destination = Path.Combine(Application.persistentDataPath,"sharingImage" + ".png");
            if (!File.Exists(destination)) {
                print("creating new file");
                File.Create(destination);
            }
            File.WriteAllBytes(destination, bytes);

            print("destination= "+destination);

            AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
            AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse","file://" + destination);

            using (AndroidJavaClass pluginClass = new AndroidJavaClass("com.kashiftasneem.sharelib.ShareController")) {

                AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
                AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");

                pluginClass.CallStatic("Share",message,uriObject,jo,gameObject.name,destination);
            }

我正在记录目标和uri,它们是:

目的地= /data/data/com.kashiftasneem.shareandroidplugin2/file/shaingImage.png

uri=file:///data/data/com.kashiftasneem.shareandroidplugin2/files/sharingImage.png

共有2个答案

辛承
2023-03-14
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));

可能会有帮助。

朱承载
2023-03-14

请尝试以下代码:

        Bitmap bitmap = getBitmapFromView(idForSaveView);
        try {
            File file = new File(this.getExternalCacheDir(), "appdiam.png");
            FileOutputStream fOut = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
            fOut.flush();
            //fOut.close();
            file.setReadable(true, false);
            final Intent intent = new Intent(android.content.Intent.ACTION_SEND);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
            intent.setType("image/png");
            startActivity(Intent.createChooser(intent, "Share image via"));
        } catch (Exception e) {
            e.printStackTrace();
        }
 类似资料:
  • 如何与ShareActionProvider共享drawable文件夹中的图像?我已经证明了很多事情,但它不起作用。 本例中的uri是什么?Uri=Uri。解析(“android。resource://com.android.example/“R.drawable.photo);不起作用。 非常感谢。

  • 我正在使用此代码在Whatsapp、Facebook和Instagram等网站上共享图像。此代码在API 25以下运行良好,但在API 25以上不起作用。

  • 我的应用程序有两个按钮,一个用于共享图像,另一个用于将其保存到内存,保存按钮工作正常,但共享按钮不工作。 这是保存按钮: 下面是分享部分: logcat上什么也没有显示,我只是得到了一些错误的吐司。权限正确。 Logcat

  • 在这里,我共享图像意图。图像在一个可绘制的文件夹中。给出这个: 代码:

  • 我部署了一个laravel应用程序到共享主机(host inger)。除了没有显示的图像,一切都很好。 我已经创建了一个符号链接的存储文件夹与我的public_html文件夹。上传的文件进入公共文件夹,但当我链接图像时,它们仍然不显示。 由于无法访问公用文件夹,我已创建指向公用html的符号链接。我需要你的帮助 我需要图像显示在浏览器上

  • 我有我导出到数据uri图像的HTML画布。现在我想通过点击我页面上的自定义链接,在Facebook时间线上尽可能轻松地分享这张图片(无需创建FB应用程序和身份验证令牌)。 我试过这样的方法: 图像生成: 共享链接: 当我点击链接Safari我得到 如何通过Facebook共享者URL(或其他方式)轻松共享数据uri图像? 谢谢你的回答!