La escritura del archivo de texto en la tarjeta SD falla

Tengo un extraño problema con el que me he encontrado. Mi aplicación puede escribir un simple archivo de texto en la tarjeta SD y a veces funciona para algunas personas pero no para otras y no tengo idea de por qué.

Para algunas personas, se cierra forzosamente si ponen algunos caracteres como... en el archivo y tal. Parece que no puedo reproducirlo ya que no he tenido problemas, pero este es el código que maneja la escritura del archivo. ¿Alguien puede pensar en algo que pueda generar problemas o una mejor manera de hacerlo?

public void generateNoteOnSD(String sFileName, String sBody)
{
    try
    {
        File root = new File(Environment.getExternalStorageDirectory(), "Notes");
        if (!root.exists()) 
        {
            root.mkdirs();
        }

        File gpxfile = new File(root, sFileName);
        FileWriter writer = new FileWriter(gpxfile);
        writer.append(sBody);
        writer.flush();
        writer.close();

        Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
    }
    catch(IOException e)
    {
         e.printStackTrace();
         importError = e.getMessage();
         iError();
    }
}   

Respuestas a la pregunta(5)

Su respuesta a la pregunta