gpt4 book ai didi

Android 将文件附加到 GMAIL - 无法附加空文件

转载 作者:IT老高 更新时间:2023-10-28 23:10:28 27 4
gpt4 key购买 nike

我有一个程序总是将相同的文件附加到 GMAIL(撰写>附加文件>打开自>“我的程序”)。它总是会选择同一个文件。

它在做什么:

String path = Environment.getExternalStorageDirectory() + "/file.3gp";
File f = new File(path);
Uri data = Uri.fromFile(f);
Intent i = new Intent();
i.setData(data);
setResult(Activity.RESULT_OK, i);
finish();

这在 Android 6.0 之前运行良好。现在,我在尝试使用它时收到以下错误:

Can't attach empty file

Astro 文件共享给了我同样的错误(可能是旧版本)。

但是,我安装了 ES 文件资源管理器,当我执行相同的例程并选择文件时,我收到一个对话框,上面写着:

Pick up file as

  • Normal Android Way (For MMS,Gmail,...)
  • File Way (Try this if above fails)

“文件方式”会像我的程序一样失败。 “正常的 Android 方式”可以正常工作。

有人知道它的作用,所以我可以复制吗?

提前致谢!

OBS:已经尝试了很多次 putExtra(STREAM, path),但没有成功。

最佳答案

好的,经过大量研究并拦截了一些 Intent,现在可以使用它了。

我要做的就是将 file:///更改为 content://。

我是根据来自 Android 的以下信息执行此操作的:https://developer.android.com/reference/android/support/v4/content/FileProvider.html

唯一的主要变化是我使用了/sdcard/file.ext 的硬编码路径。另外,这条线

getUriForFile(getContext(), "com.mydomain.fileprovider", newFile);

改为

Uri contentUri = FileProvider.getUriForFile(this, "com.mydomain.fileprovider", newFile);

还必须包括:

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
i.setData(contentUri);

我真的不明白为什么我必须将从文件更改为内容,但是在此之后,文件现在又被附加了!如果您遇到此问题,请查看链接,不要忘记需要创建的新 .xml。

关于Android 将文件附加到 GMAIL - 无法附加空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32318692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com