2012-04-21 3 views
5

Я разрабатываю приложение для проводника файлов в Android. Как обрабатывать файлы с неизвестными расширениями? Когда я пытаюсь открыть такой файл, его бросает исключение ActivityNotFound. Но я хочу, чтобы система всплывала список приложений, чтобы мы могли вручную выбрать приложение, чтобы открыть его. Может ли кто-нибудь помочь мне здесь?Android: Как открыть неизвестный тип файла

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

Intent intent = new Intent(Intent.ACTION_VIEW); 
MimeTypeMap mime = MimeTypeMap.getSingleton(); 
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1); 
String type = mime.getMimeTypeFromExtension(ext); 
intent.setDataAndType(Uri.fromFile(new File(file.toString())), type); 
try 
{ 
    startActivity(intent); 
} 
catch(Exception e){} 

ответ

4

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

Самый подходящий способ справиться с ситуацией - это уловить исключение ActivityNotFound и показать тост, уведомляющий пользователя, что для открытия файла нет соответствующих приложений.

Все браузеры для Android работают следующим образом.

+0

менеджер Asus File (4.4) дают это родовое «Открыть как» список с четырьмя элементами, представляющими общие категории (текст, изображение, аудио, видео). При выборе одного из них вы получите список связанных приложений, чтобы открыть файл (подобно Windows). – samosaris

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