2016-12-10 2 views
0

Я пытаюсь создать приложение, в котором пользователь может просматривать файлы на своем телефоне и выбирать один. Затем я хотел бы открыть выбранный файл и прочитать его. Это звучит просто, но я застрял. Вот код, который я использую для позволяя пользователю выбрать файл:
Позвольте пользователю выбрать файл и прочитать его

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
//intent.addCategory(Intent.CATEGORY_OPENABLE); 
intent.setType("file/*"); 
startActivityForResult(intent,1); 

Я не понимаю, почему, когда я выполняю этот код я могу просмотреть файл в моей папке загрузки (на моем телефоне), но я не может ничего выбрать в нем. У меня есть все необходимые разрешения в моем манифесте, но он все еще не работает. Есть идеи ?

+1

Удалите 'setType()' или используйте 'setType (" */* ")'. 'file/*' не является допустимым типом MIME. – CommonsWare

+0

, но я хочу, чтобы пользователь открывал файлы .txt. – Mtoypc

+0

Затем используйте 'setType (" text/plain ")'. – CommonsWare

ответ

1

Когда вы вызываете setType() на Intent, вам необходимо указать допустимый тип MIME или шаблон типа MIME. Официального MIME-типа не существует, начиная с file/, поэтому шаблон типа MIME file/* вряд ли будет соответствовать чему-либо.

, но я только хочу, чтобы пользователь, чтобы открыть .txt файлы

Вы не можете фильтровать ACTION_GET_CONTENT по расширению файла, так как там не должно быть расширение файла, или даже имя файла. Что вы может do является фильтром по типу MIME, а тип MIME для обычного текста - text/plain. Если вы хотите поддерживать другие типы текста (например, HTML), вы можете использовать шаблон типа MIME text/*.

Смежные вопросы