Android的文件发送意图将数据uri放入gmail收件人字段

时间:2018-12-17 02:22:49

标签: android android-intent

我需要一个意图同时将文件发送到Messenger(WhatsApp等)和Email客户端(Gmail等)之类的应用程序。但是,由于某些原因,我不了解Gmail,在收件人字段中显示了文件uri。

我原来的uri是: [package_name] .debug.generic.tools.GenericFileProvider / external_files / 1544617983061.pdf

接收者的最终身份是: // [package_name] .debug.generic.tools.GenericFileProvider / external_files / 1544617983061.pdf

从Gmail截屏:

enter image description here

有一些错误的代码:

Uri uri = FileProvider.getUriForFile(fragment.getActivity(), fragment.getActivity().getApplicationContext().getPackageName() + ".generic.tools.GenericFileProvider", externalFile);
Intent intentSend = new Intent(Intent.ACTION_SEND);
intentSend.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intentSend.setDataAndType(uri, "application/pdf");
intentSend.putExtra(Intent.EXTRA_STREAM, uri);
intentSend.putExtra(Intent.EXTRA_SUBJECT, name);
intentSend.putExtra(Intent.EXTRA_EMAIL, new String[]{"test@provider.com"});

try {
    fragment.startActivity(Intent.createChooser(intentSend, fragment.getString(R.string.external_file_send_chooser)));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(fragment.getActivity(), R.string.external_file_send_no_activity, Toast.LENGTH_LONG).show();
}

有人知道发生了什么吗?我的数据uri如何解释为收件人?

文件本身已正确附加到电子邮件,并且WhatsApp也成功发送了文件。

编辑: 问题已经在这里回答Content URI passed in EXTRA_STREAM appears to "To:" email field

0 个答案:

没有答案