Как открыть файл с учетом расширения в Android

Автор: anon
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

 

Добавить комментарий


Защитный код
Обновить