0

я нашел следующий код, чтобы открыть определенный каталог:Android: Не удалось открыть отдельную папку

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.parse(StaticMember.APP_DIR); 
intent.setDataAndType(uri, "resource/folder"); 
context.startActivity(intent); 

Но теперь я обращенный вопрос, что он работает только в том случае ES File Explorer, установленный на вашем устройстве, другие приложения файлового менеджера, которые невозможно обнаружить.

Как решить эту проблему?

+0

рассмотреть добавление модуля как https://github.com/ psaravan/FileBrowserView для вашего приложения. –

ответ

0

Во-первых, resource/folder не является официальным типом MIME.

Во-вторых, ACTION_VIEW предназначен для просмотра содержания. Каталог не является частью контента, с точки зрения Android.

На любом устройстве Android не требуется никаких действий, позволяющих просматривать содержимое каталога. Официальных стандартов для структуры Intent не требуется. Могут существовать некоторые соглашения между разработчиками файлового менеджера (например, независимо от того, какой должен быть heck resource/folder), но для всех файловых менеджеров нет необходимости предлагать такое действие или для пользователя установить такой файловый менеджер.

Итак, вы решить эту проблему, либо:

  • Удаление кода и устранения функции или

  • Использование PackageManager и queryIntentActivities(), чтобы увидеть, есть ли деятельность, которая обрабатывает вашу Intent, неудачно изящно, если их нет

  • Ловля ActivityNotFoundException и неудачно изящно, если кто-то брошен

  • Не пытайтесь полагаться на сторонних приложений для просмотра каталога, и реализовать свой собственный пользовательский интерфейс для этого, возможно, с помощью existing third-party libraries for that

+0

Я знаю, я могу проверить, есть ли какое-либо приложение для обработки такого типа MIME. основная проблема заключается в том, что я хочу открыть конкретную папку. –

+0

@FaisalShaikh: тогда не полагайтесь на сторонние приложения для просмотра вашей конкретной папки и реализации собственного пользовательского интерфейса. – CommonsWare

+0

Построение чего-то с нуля, которое уже существует, не является хорошей идеей. –

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