Как открыть файл с учетом расширения в Android
Автор: anonymous
29.05.2011 14:01
Здесь описаны действия, нужные файловому менеджеру для того, чтобы открыть файл по запросу пользователя. Чтобы открыть файл с данными в программе, которая сумеет его обработать, надо сначала узнать его MIME тип. Самым простым способом будет проанализировать его расширение. Это делается следующим образом.
public String get_mime_by_filename(String filename){ String ext; String type; int lastdot = filename.lastIndexOf("."); if(lastdot > 0){ ext = filename.substring(lastdot + 1); MimeTypeMap mime = MimeTypeMap.getSingleton(); type = mime.getMimeTypeFromExtension(ext); if(type != null) { return type; } } return "application/octet-stream"; }
Теперь, зная тип файла, надо создать Intent.
String full_file_path = "/mnt/sdcard/MP3/Frenzy.mp3"; String mime = get_mime_by_filename(full_file_path); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(android.content.Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(full_file_path)), mime); try{ startActivity(intent); }catch (ActivityNotFoundException e){ Toast.makeText(getApplicationContext(), "Couldn't open: unknown file type", Toast.LENGTH_SHORT).show(); }
Вот так можно открыть файл, зная только путь к нему.
Обновлено 29.05.2011 14:19
