Запуск намерения для файла и типа 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
без успеха.
Действие, которое я хочу выполнить, состоит в том, что пользователь щелкает файл, если он связан с приложением, которое запускает приложение, если нет, пользователь получает действие «Завершить с использованием». диалог со списком приложений.
Спасибо за любой совет.