gpt4 book ai didi

Android:正确下载/保存电子邮件附件

转载 作者:行者123 更新时间:2023-11-30 04:35:49 25 4
gpt4 key购买 nike

我有一个有趣的问题:我的应用程序旨在发送和打开一个充满文件的 zip,并且该 zip 有一个特殊的扩展名(对用户来说更容易)。我可以压缩我需要在电子邮件中附加的文件,然后发送它们。

当我使用 g-mail 的“查看”按钮并选择我的应用程序打开文件时,它没有正确解压缩它们。但是,如果我使用 gmail 的“下载”按钮,然后通过文件资源管理器打开该文件,该文件将正确解压缩。

这是我用来下载附件的代码:

// get attachment
try {
attachment = getContentResolver().openInputStream(
getIntent().getData());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Save it
try {
File root = Environment.getExternalStorageDirectory();
path = root.getPath() + "/PSattachment.psz";
savedFile = new File(path);
FileOutputStream fos = new FileOutputStream(savedFile, false);
BufferedOutputStream os = new BufferedOutputStream(fos);
byte[] buffer = new byte[1024];
int byteRead = 0;
while ((byteRead = attachment.read(buffer)) != -1) {
os.write(buffer, 0, byteRead);
}
fos.close();
} catch (Exception e) {
e.printStackTrace();
}

我做错了什么吗?提前致谢。 (此外,解压缩过程在两种情况下都是相同的 [文件资源管理器和从电子邮件中查看],所以我很确定它在这里。此外,文件确实下载了,并且大小合适。它只是不会' t 解压缩)。

最佳答案

我找到答案了!!!花了一段时间,但至少现在可以用了:

            try {
InputStream attachment = getContentResolver()
.openInputStream(getIntent().getData());
savedFile = new File(Environment
.getExternalStorageDirectory().getAbsolutePath(),
"temp" + System.currentTimeMillis() + ".psz");
FileOutputStream f = new FileOutputStream(savedFile);
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = attachment.read(buffer)) > 0) {
f.write(buffer);
}
f.close();
} catch (Exception e) {
}

我刚刚使用这段代码下载了附件,现在一切正常 =D

关于Android:正确下载/保存电子邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6872991/

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