android studio在发送电子邮件时发生错误

时间:2017-08-31 18:28:35

标签: java android

我正在尝试发送一封包含外部存储空间文件附件的电子邮件。但是我无法看到该文件或由于模拟器和手机的IO错误而发送它。 这是我的代码:

package com.energyengineeringltd.www.energyengineeringltd;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.FloatingActionButton;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import jxl.read.biff.BiffException;

import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;


import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.lang.reflect.Array;

public class emailone extends Activity {
private String filepath = "MyFileStorage";
File myExternalFile;
String myData = "";
Button b1;
EditText ed1;
String file_name;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.email);
    b1 = (Button) findViewById(R.id.button);
    ed1 = (EditText) findViewById(R.id.editText);
    if (!isExternalStorageAvailable() || isExternalStorageReadOnly()) {
        b1.setEnabled(false);
    } else {
        Intent intent = getIntent();
        String a = intent.getStringExtra("project");
        String c = intent.getStringExtra("unique");
        file_name = a + "1CableSupportContainmentChecklist" + c + ".txt";
        myExternalFile = new File(getExternalFilesDir(filepath), file_name);
    }
    b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!ed1.getText().toString().contains("@")) {
                Toast.makeText(getApplicationContext(),
                        "Please enter a valid email", Toast.LENGTH_SHORT).show();
            } else {
                File filelocation = new File(getFilesDir().getAbsolutePath() + filepath, file_name);
                Uri path = Uri.fromFile(filelocation);
                Intent emailIntent = new Intent(Intent.ACTION_SEND);
                emailIntent.setType("vnd.android.cursor.dir/email");
                String to[] = {ed1.getText().toString()};
                emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
                emailIntent.putExtra(Intent.EXTRA_STREAM, path);
                emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
                Toast.makeText(getApplicationContext(),
                        "sending...", Toast.LENGTH_SHORT).show();
                startActivity(Intent.createChooser(emailIntent, "Send email..."));
            }
        }
    });
}

private static boolean isExternalStorageReadOnly() {
    String extStorageState = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
        return true;
    }
    return false;
}

private static boolean isExternalStorageAvailable() {
    String extStorageState = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
        return true;
    }
    return false;
}

}

有谁知道我可以做些什么来解决这个IO错误,它甚至不会出现在Android监视器中,所以我不知道。非常感谢!!!

0 个答案:

没有答案