【发布时间】:2015-11-25 22:15:37
【问题描述】:
我有一个程序总是将相同的文件附加到 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 之前运行良好。 现在,我在尝试使用它时收到以下错误:
无法附加空文件
Astro 文件共享给了我同样的错误(可能是旧版本)。
但是,我安装了 ES 文件资源管理器,当我执行相同的例程并选择文件时,我收到一个对话框,上面写着:
提取文件为
- 普通 Android 方式(用于彩信、Gmail 等)
- 文件方式(如果上述方法失败,请尝试此方法)
“文件方式”会像我的程序一样失败。 “正常的 Android 方式”可以正常工作。
有人知道它的作用,所以我可以复制吗?
提前致谢!
OBS:已经尝试了很多次 putExtra(STREAM, path),但没有成功。
【问题讨论】:
-
文件名有多长?
-
@Skizo 这是完整路径 + 名称:“file:///sdcard/Example_1MBattachment.mpx”
-
尽量用字母少的名字,我知道一个人是他的错。
-
@Skizo 尝试使用 test.mpx 和 test2.3gp。没有工作。他们确实可以使用 ES 文件资源管理器。
-
我已经尝试将文件路径从 file:///... 更改为 content://...,现在 toast 消息不同了。现在它说“无法附加文件。”。我仍在使用 setData,而 putExtra 不工作(什么都不做)
标签: android android-intent attachment