0

I've been looking for a solution for some time to send an email with a TXT file located in location( In java ) (storage / emulated / 0 / testDir / testFileName.txt ) I found this but it is not working for me ( Android, .txt email attachment not sending via intent ) Thanks for the help!

UPDATE my code:

        email = findViewById(R.id.email);
        email.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    String fileName = "testFileName.txt";
                    File root = new File(Environment.getExternalStorageDirectory(), "testDir");
                    if (!root.exists()) {
                        root.mkdirs();
                    }
                    File gpxfile = new File(root, fileName);
                    FileWriter writer = new FileWriter(gpxfile);
                    writer.append("Testing email txt attachment.");
                    writer.flush();
                    writer.close();
                    sendEmail(gpxfile);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

protected void sendEmail(File file){
    Uri path = Uri.fromFile(file); // This guy gets the job done!

    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("message/rfc822");
    i.putExtra(Intent.EXTRA_SUBJECT, "Test subject");
    i.putExtra(Intent.EXTRA_TEXT, "This is the body of the email");
    i.putExtra(Intent.EXTRA_STREAM, path); // Include the path
    try {
        startActivity(Intent.createChooser(i, "Send mail..."));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
    }
}

This is the error: android.os.FileUriExposedException: file:///storage/emulated/0/testDir/testFileName.txt exposed beyond app through ClipData.Item.getUri()

Barni
  • 31
  • 5

0 Answers0