파일을 SD에 씁니다. ASTRO 앱이나 Gmail 앱 또는 Yahoo 앱을 사용하고 있기 때문에 파일을 볼 수 있으며 앱에서 첨부 할 수도 있기 때문에 파일이 정상임을 압니다.하지만 앱에서 파일을 첨부하려고하면 그 파일이 상당히 다릅니다. Gmail이나 yahoo 앱을 선택하면 파일을 읽을 수 없습니다. 하지만 기본 앱을 선택하면 이메일 첨부 파일이 올바르게 전송됩니다.이메일 앱이 첨부하려는 파일을 읽을 수 없습니다.
여기 내 코드입니다. 감사!!
내부 AndroidManifest를 는 사용-권한 안드로이드 : 나는 그것을
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:"));`
을 첨부하려고 이름 = "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();
이제 파일을
을,
"파일을 읽을 수 없습니다"란 무엇을 의미하는지 설명하십시오. 어떤 오류 메시지가 나타 납니까? 또한,'ContentProvider'를 사용하지 않을 때'FLAG_GRANT_READ_URI_PERMISSION'을 포함하는 이유는 무엇입니까? 'sync()'사용을 고려해 볼 수도 있습니다. http://android-developers.blogspot.com/2010/12/saving-data-safely.html – CommonsWare
안녕하세요, 답변 해 주셔서 감사합니다. 나는 스페인 출신이고 메시지는 스페인어로되어 있습니다. 나는 그들을 번역하려고 노력할 것이다. Gmail 앱에서 "Se ha detenido la aplicación"은 "앱이 중지되었습니다"라는 의미입니다. 이것은 단추를 눌러 전송하지만 파일이 첨부 된 상태 일 때 발생합니다. 야후 응용 프로그램은 "읽기 권한이 없습니다."라는 의미는 "읽기 액세스가 거부되었습니다. 선택한 파일을 읽을 수 없습니다"입니다. FLAG_GRANT _....? 나는 단지 노력하고 있었다. sync()에 대한 링크를 읽습니다. 감사. – David