Намерение Android в зависимости от типа файла - PullRequest
1 голос
/ 26 мая 2011

Я пытаюсь разработать браузер папок для Android. Папка может иметь файлы любого типа, например, файл doc, файл txt, mp3, avi, apk файл и т. Д. Как запустить определенное приложениеоснованный на файле, который щелкнул пользователь ... я имею в виду, как я строю намерение на основе типа файла ... Спасибо Prashanth

Ответы [ 4 ]

2 голосов
/ 26 мая 2011

Просто установите тип намерения, например: intent.setType("video/mpeg");.

Редактировать: используйте MimeTypeMap для динамического получения MIME-типа для файла.

0 голосов
/ 12 июля 2012

Я нашел один.Может быть, это может помочь вам:

Intent intent= new Intent();
intent.setAction(Intent.ACTION_VIEW);

File file = new File(filePath);

MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext = file.getName().substring(file.getName().indexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);

intent.setDataAndType(Uri.fromFile(file), type);
0 голосов
/ 06 июля 2012

может быть так ... потому что я пытаюсь это сделать в своем коде ...

//differentiate file type
    String filename = o.getName();
    String filenameArray[] = filename.split("\\.");
    String extension = filenameArray[filenameArray.length-1];

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);

    if (extension.contains("png") || extension.contains("gif") || extension.contains("jpg") 
            || extension.contains("jpeg") || extension.contains("bmp"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "image/*");
    }
    if (extension.contains("txt") || extension.contains("csv") || extension.contains("xml"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "text/*");
    }
    if (extension.contains("pdf"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/pdf");
    }
    if (extension.contains("doc") || extension.contains("docx"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "application/msword");
    }
    if (extension.contains("mp3") || extension.contains("wav") || extension.contains("oog") 
            || extension.contains("mid") || extension.contains("amr") || extension.contains("midi"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "audio/*");
    }
    if (extension.contains("mpeg") || extension.contains("3gp"))
    {
        intent.setDataAndType(Uri.parse("file://" + o.getPath()), "video/*");
    }

Я все еще ищу короткий код, но я надеюсь, что этот код поможет вам ...

0 голосов
/ 26 мая 2011

Создать одно мероприятие.Где вы найдете расширение файла, будь то mp3 или dic и т. Д. На основании расширения вызовите другое действие из этого упражнения.

Спасибо Deepak

...