我想使用 SEND 意图将当前在 textview 上显示的任何文本作为文本文件(.txt)发送,以便用户可以使用蓝牙或将其作为电子邮件附加来发送文件。
我写的功能是:
public void send() throws IOException
{
myFile = new File(Environment.getExternalStorageDirectory().getPath()+"/"+programname+".txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =new OutputStreamWriter(fOut);
myOutWriter.append(textView.getText());
myOutWriter.close();
fOut.close();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(myFile) );
startActivity(intent);
//myFile.delete();
//Note that I have commented the last line to prevent file from being deleted
}
这段代码的作用是创建一个新文件,将文本视图中的文本附加到它,然后将此文件传递给 ACTION_SEND 意图,使用户可以选择通过蓝牙发送此文件或发送电子邮件,文件自动附加附加到 gmail,许多其他选项等。
只要我不对文件调用删除函数(这会导致文件在附加或通过蓝牙发送之前被删除),它就可以工作。我希望能够删除这个文件,因为它不必要地占用储存空间。
如果可能的话,请告诉我用代码示例解决这个问题的正确方法是什么。