У меня есть интересная проблема: мое приложение предназначено для отправки и открытия zip, полного файлов, а zip имеет специальное расширение (проще для пользователя). Я могу заархивировать файлы, которые мне нужно прикрепить, по электронной почте и отправить их.
Когда я использую кнопку «Просмотр» и выбираю свое приложение, чтобы открыть файл, оно не распаковывает их правильно. Однако если я использую кнопку «скачать» 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 распаковать).