Отправка электронного письма и прикрепление книги || Ошибка Uri.parse()
Я работаю над приложением, которое создаст файл Excel (рабочую книгу) и затем отправит его по электронной почте человеку. Я успешно записал в книгу и сохранил ее на своем устройстве, но не могу прикрепить ее к электронному письму. Это результат цикла try & catch, который я настроил:
10-26 14:33:30.775 30354-30354/com.example.joshua.eeltd W/FileUtils: Writing file/storage/emulated/0/Android/data/com.example.joshua.eeltd/files/ad3CableSupportContainmentCheckListform.xls
10-26 14:33:30.780 30354-30354/com.example.joshua.eeltd W/FileUtils: Failed to save fileandroid.os.FileUriExposedException: file://storage/emulated/0/Android/data/com.example.joshua.eeltd/files/ad3CableSupportContainmentCheckListform.xls exposed beyond app through ClipData.Item.getUri()
Ниже приведен код, который я использую при попытке прикрепить файл к письму:
File file = new File(cx.getExternalFilesDir(null), form+".xls");
FileOutputStream os = null;
try {
os = new FileOutputStream(file);
wb.write(os);
Log.w("FileUtils", "Writing file" + file);
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("application/excel");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, cx.getString(R.string.subject));
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, cx.getString(R.string.message));
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ file));
cx.startActivity(Intent.createChooser(emailIntent, "Send mail..."));
} catch (IOException e) {
Log.w("FileUtils", "Error writing " + file, e);
} catch (Exception e) {
Log.w("FileUtils", "Failed to save file", e);
} finally {
try {
if (null != os)
os.close();
} catch (Exception ex) {
}
}
Если у вас есть представление о том, что я могу сделать, чтобы исправить эту ошибку, пожалуйста, дайте мне знать, поскольку я незнаком с этой областью в java / android studio. Все и любая помощь высоко ценится, спасибо заранее.
Используемые переменные: cx - контекст действия ---- электронная почта - электронная почта пользователя --- тема и сообщение - просто ввод строк