Запуск намерения для файла и типа MIME?

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

Я написал приложение, которое пытается запускать различные файлы, вроде файлового браузера. Когда файл щелкается, он пытается запустить программу, основываясь на связанном с ним типе MIME, или представляет «Выбор приложения для запуска». Диалог.

Вот код, который я использую для запуска:

    File file = new File(app.mediaPath() + "/" +_mediaFiles.get(position));

    Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);

    String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
    String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    myIntent.setDataAndType(Uri.fromFile(file),mimetype);
    startActivity(myIntent);

Это терпит неудачу и генерирует ошибку:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }

Теперь, если я, например, устанавливаю OI File Manager, вместо этой ошибки он открывается, а затем, если я щелкаю тот же файл изнутри, он запускает диалоги оценки.

Я заметил, что тип MIME для этого конкретного файла не работает, но другие типы MIME, такие как.zip возвращать значения

Я что-то упускаю, когда MIME-тип имеет значение null, чтобы вызвать диалог, который позволяет пользователю выбирать?

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

Действие, которое я хочу выполнить, состоит в том, что пользователь щелкает файл, если он связан с приложением, которое запускает приложение, если нет, пользователь получает действие «Завершить с использованием». диалог со списком приложений.

Спасибо за любой совет.

Ответы на вопрос(2)

Ваш ответ на вопрос