Algumas pessoas fazem alusão à questão de ter espaços no nome do arquivo. Eu vou esclarecer.
O Android é baseado no Linux e, portanto, usa um sistema de arquivos posix. Isso significa que nomes de arquivos com espaços causam problemas. Não use espaços se estiver criando um arquivo ou diretório; deixe-os de fora ou use pontos ( .
), traços ( -
) ou sublinhados ( _
). Para carregar um arquivo existente com espaço, você deve citar o arquivo.
Usando o exemplo da pergunta, substitua:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/To%20Read.html?text/html
com isso:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/"To Read.html"?text/html
Caso contrário, você está simplesmente abrindo um arquivo, pode citar a sequência inteira. Como isso:
"/mnt/sdcard/Documents/To Read.html"
Além de espaços que podem causar problemas, os sistemas posix permitem caracteres em nomes de arquivos que não são permitidos no Windows. Para evitar problemas ao copiar arquivos entre sistemas, mesmo que alguns ainda sejam permitidos no Windows, não inclua os seguintes caracteres nos nomes de arquivos:/ \ ? * : % " < > | + # '
Para evitar problemas adicionais, use um estilo consistente de capitalização nos nomes dos arquivos. Observe que os sistemas posix diferenciam maiúsculas de minúsculas, o que significa que os nomes de arquivos diferenciam maiúsculas de minúsculas. Isso significa que file.txt, FILE.TXT, file.TXT, File.txt, georgE.txt etc. são todos arquivos diferentes em um sistema posix, enquanto são considerados o mesmo arquivo no Windows.