是否可以通过Intent或其他方式共享* .json文件?

时间:2019-03-26 11:37:07

标签: java android android-intent kotlin

在我的应用程序中,我需要与其他应用程序(信使,谷歌磁盘等)共享* .json文件。如何通过Intent或其他方式执行此操作?

但是当我尝试通过Intent进行此操作时,我遇到了一些问题。

override fun shareBackupData(path: String) {
        val uri = Uri.parse(path)
        val shareIntent = Intent()
        shareIntent.action = Intent.ACTION_SEND
        shareIntent.putExtra(Intent.EXTRA_STREAM, uri)
        shareIntent.type = "*/*"
        startActivity(Intent.createChooser(shareIntent, "Choose"))
    }

运行此代码时,我选择要共享的应用,然后看到吐司“不支持的附件”

2 个答案:

答案 0 :(得分:0)

我认为您可以将文件用作ExtrtaStream,以下代码共享图像文件,可以将其更改为json文件

final Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/jpg");
final File photoFile = new File(getFilesDir(), "foo.jpg");//change it with your file
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(photoFile));
startActivity(Intent.createChooser(shareIntent, "Share image using"));

答案 1 :(得分:0)

对此我也遇到了类似的问题,并且发现了article,它建议我们使用FileProvider

它的作用是:

  

FileProvider是ContentProvider的特殊子类,它通过为文件而非文件:/// Uri创建content:// Uri来促进与应用程序关联的文件的安全共享。

我建议您看一下这篇文章,如果您想要编写代码,请看一下这篇Stackoverflow post