无法在android中与名称中的空格共享文件

时间:2015-05-01 05:52:29

标签: android android-intent android-file android-sharing

如果文件名中有空格,我无法在whatsapp中共享音频文件。但它在使用电子邮件客户端共享时有效。对于没有空格的文件名也可以正常工作。以下是我正在使用的代码

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
File F = new File(filePath);
F.setReadable(true, false);
Uri fileURI = Uri.fromFile(F);
Log.e("Share", "Share file url is " + fileURI);
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Shared file");
sharingIntent.setType("*/*");
sharingIntent.putExtra(Intent.EXTRA_STREAM, fileURI);

我尝试过做filePath.replace(“”,“\”),无法正常工作。 应该做哪些更改来共享文件?

2 个答案:

答案 0 :(得分:1)

当您尝试与WhatsApp共享具有空格的音频文件时,此功能正常运行:

String filePath = "file:///sdcard/Download/example attachment.mp3";

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(filePath));
shareIntent.setType("audio/*");
startActivity(Intent.createChooser(shareIntent, "Share audio file"));

答案 1 :(得分:0)

我能够使用与我发布的相同代码共享音频,只需对类型进行微小更改。下面的代码既适用于电子邮件,也适用于whatsapp共享:

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
File F = new File(filePath);
F.setReadable(true, false);
Uri fileURI = Uri.fromFile(F);
Log.e("Share", "Share file url is " + fileURI);
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Shared file");
sharingIntent.setType("audio/*");
sharingIntent.putExtra(Intent.EXTRA_STREAM, fileURI);