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

Kotlin中的图像共享意图问题

鲍国兴
2023-03-14

在这里,我共享图像意图。图像在一个可绘制的文件夹中。给出这个Excpetion。android.os.FileUriExposedException

file:///storage/emulated/0/Android/data/com.example.arkkhano.myapplication/cache/myImage.png exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)

代码:

sharing_img.setOnClickListener {
    val myDrawable = tv_view_home2e.drawable
    val bitmap = (myDrawable as BitmapDrawable).bitmap
    val file = File(externalCacheDir,"myImage.png")
    val fOut = FileOutputStream(file)
    bitmap.compress(Bitmap.CompressFormat.PNG,90,fOut)
    fOut.flush()
    fOut.close()
    file.setReadable(true,false)
    val intent = Intent(Intent.ACTION_SEND)
    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
    intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file))
    intent.type = "image/png"
    intent.putExtra(Intent.EXTRA_SUBJECT,"Subject here")
    startActivity(Intent.createChooser(intent,"Share to "))
}

共有1个答案

蓟俊杰
2023-03-14

根据Android文档,您应该使用FileProvider

https://developer.android.com/reference/android/support/v4/content/FileProvider

但当我尝试时,它在某些设备上工作,在其他设备上不工作。

因此,对我来说,一种安全的方法是首先将文件导出到外部存储(Environment.getExternalStorageDirectory),然后共享到其他应用程序。这适用于我的所有设备。

 类似资料:
  • 我有一个分享url图片的应用程序。上一次Android更新,当我想在instagram订阅源中共享一张图片时,我收到instagram的消息“无法加载图片”。 但我可以分享图片故事,直接信息,以及任何地方。。。我只有instagram订阅了这个问题。

  • 我使用这个代码,但它不能正常工作。 当我使用text类型时,它可以正常工作。 但是我想共享一个文本和一个图像。 而共享的意图在Facebook中不起作用。

  • 如何与ShareActionProvider共享drawable文件夹中的图像?我已经证明了很多事情,但它不起作用。 本例中的uri是什么?Uri=Uri。解析(“android。resource://com.android.example/“R.drawable.photo);不起作用。 非常感谢。

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

  • 问题内容: 我的客户希望在Instagram,Twitter,Facebook上共享图像。 我已经完成了Twitter和Facebook,但是在互联网上找不到任何API或任何东西可以在Instagram上共享图像。 是否可以在Instagram上分享图片? 如果是,那怎么办? 当我检查Instagram的开发人员站点时,我发现了Ruby on Rails和Python库。但是没有iOS Sdk的文

  • 我知道你可以分享信息,现在这在android和ios上都起作用了: 然而,我想分享一个图片通过一个按钮在我的网站,就像某人会分享一个图片从他的手机(图库)。这到底有没有可能?