CSV を生成し、Android を使用してその CSV ドキュメントをメールで送信する必要がある小さな電子メール アプリケーションを開発する必要があります。この添付ファイルをストレージに保存せずに送信する必要があります。次のように、ファイルライターと私のコードを使用してCSVファイルを添付するのが難しいことがわかりました。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonSend = (Button) findViewById(R.id.buttonSend);
textTo = (EditText) findViewById(R.id.editTextTo);
textSubject = (EditText) findViewById(R.id.editTextSubject);
textMessage = (EditText) findViewById(R.id.editTextMessage);
buttonSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String to = textTo.getText().toString();
String subject = textSubject.getText().toString();
String message = textMessage.getText().toString();
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
//email.putExtra(Intent.EXTRA_CC, new String[]{ to});
//email.putExtra(Intent.EXTRA_BCC, new String[]{to});
email.setType("text/csv");
email.putExtra(Intent.EXTRA_SUBJECT, subject);
email.putExtra(Intent.EXTRA_TEXT, message);
email.putExtra(Intent.EXTRA_STREAM,generateCsvFile("testdata.csv"));
//need this to prompts email client only
startActivity(Intent.createChooser(email, "Choose an Email client :"));
}
});
}
public static FileWriter generateCsvFile(String sFileName) throws IOException
{
FileWriter writer;
writer = new FileWriter(sFileName);
writer.append("DisplayName");
writer.append(',');
writer.append("Age");
writer.append('\n');
writer.append("RajeshV");
writer.append(',');
writer.append("26");
writer.append('\n');
writer.append("Mrithula");
writer.append(',');
writer.append("29");
writer.append('\n');
return writer;
}
}
この行で問題が発生しました:
email.putExtra(Intent.EXTRA_STREAM,generateCsvFile("testdata.csv"));