Прикрепить файл из внутреннего хранилища - PullRequest
0 голосов
/ 13 февраля 2020

Этот вопрос задавали многие люди. Я хотел бы прикрепить файл из внутреннего хранилища, используя приведенный ниже код с принятым комментарием здесь, на SO:

Intent intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain-text");
            intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"email@example.com"}); 
            intent.putExtra(Intent.EXTRA_SUBJECT, "subject here");
            intent.putExtra(Intent.EXTRA_TEXT, "body text");
            File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
            File file = new File(root, "myName.csv");
            Toast.makeText(this, file.toString(), Toast.LENGTH_SHORT).show();
           if (!file.exists() || !file.canRead()) {
                Toast.makeText(this, "Attachment Error", Toast.LENGTH_SHORT).show();
                finish();
                return;
            }
            Uri uri = Uri.fromFile(file);
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            startActivity(Intent.createChooser(intent, "Send email..."));

Разрешение используется в манифесте:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Приложение выдает сообщение Toast «Ошибка вложения».

...