Отправка электронного письма и прикрепление книги || Ошибка Uri.parse () - PullRequest
0 голосов
/ 26 октября 2018

Я работаю над приложением, которое создаст файл 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 - контекст деятельности ---- электронная почта - электронная почта пользователя --- тема и сообщение - просто строки ввода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...