小编Sim*_*ett的帖子

在EXTRA_STREAM中传递的内容URI显示为"收件人:"电子邮件字段

我正在缓存目录中创建一个文件,我想与其他人共享(通过Gmail/WhatsApp等).我可以使用FileProvider来做到这一点,它适用于WhatsApp.当选择在Gmail上共享时,照片已正确附加,但我通过Intent.EXTRA_STREAM传递的Uri也最终被Gmail解析为新撰写的电子邮件的"收件人:"字段中的地址以及地址( es)我通过Intent.EXTRA_EMAIL传递.

因此,用户需要在发送之前删除伪造(Uri)电子邮件地址.知道如何防止这种情况发生吗?

Uri contentUri = FileProvider.getUriForFile(getActivity(), "com.mypackage.fileprovider", cacheFile);

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setDataAndType(contentUri, "image/jpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"some_address@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Photo");
intent.putExtra(Intent.EXTRA_TEXT, "Check out this photo");
intent.putExtra(Intent.EXTRA_STREAM, contentUri);

if(intent.resolveActivity(getActivity().getPackageManager()) != null)
{
    startActivity(Intent.createChooser(intent, getString(R.string.share_file)));
}
Run Code Online (Sandbox Code Playgroud)

email android android-fileprovider

10
推荐指数
1
解决办法
668
查看次数

标签 统计

android ×1

android-fileprovider ×1

email ×1