我将文件写入SD。我知道文件没问题,因为使用 ASTRO 应用程序或 Gmail 应用程序或 Yahoo 应用程序,我可以看到它,我也可以从它们附加它,但是当我尝试从我的应用程序附加文件时,情况就完全不同了。当我选择 gmail 或 yahoo 应用程序时,他们无法读取文件。但是,如果我选择默认应用程序,则会正确发送电子邮件并附上文件。
这是我的代码。谢谢!!
AndroidManifest 内部使用权限 android:name="android.permission.WRITE_EXTERNAL_STORAGE"
我在哪里制作文件
File ruta_sd = Environment.getExternalStorageDirectory();
File f;
// Creo la carpeta;
File folder = new File(ruta_sd.getAbsolutePath() + "/Torno");
folder.mkdirs();
f = new File(ruta_sd.getAbsolutePath() + "/Torno/","Torno.xml");
// Just trying
f.canRead();
OutputStreamWriter fout = new OutputStreamWriter(new FileOutputStream(f));
fout.write(c); <-- c is a String in xml format
// Just trying
fout.flush();
fout.close();
现在,我尝试在其中附加它
String ruta = Environment.getExternalStorageDirectory().getPath() + "/Torno/Torno.xml";
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType(getMimeType(ruta));
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(ruta));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "el tema");
sendIntent.putExtra(Intent.EXTRA_TEXT, "el cuerpo del mensaje");
// Just trying
sendIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(Intent.createChooser(sendIntent, "Title:"));`