在我的应用程序中,我需要与其他应用程序(信使,谷歌磁盘等)共享* .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"))
}
运行此代码时,我选择要共享的应用,然后看到吐司“不支持的附件”
答案 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