package Ġcom . example . h ax zie Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ Ċ import Ġjava . io . File Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġh ax zie Ġon Ġ 1 1 / 1 2 / 1 7 . Ċ Ġ*/ ĊĊ Ċ /** Ċ Ġ* ĠSingleton Ġwhich Ġcontains Ġmost Ġcommonly Ġused Ġfile Ġtypes Ġto Ġmake Ġit Ġeasier Ġto Ġopen Ġfiles Ġprogram matically Ċ Ġ* ĠPS : Ġnot Ġmine Ċ Ġ*/ Ċ object ĠFile Open Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġopen File ( context : ĠContext , Ġurl : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate ĠURI ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . from File ( url ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġwhat Ġkind Ġof Ġfile Ġyou Ġare Ġtrying Ġto Ġopen , Ġby Ġcomparing Ġthe Ġurl Ġwith Ġextensions . ĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġthe Ġif Ġcondition Ġis Ġmatched , Ġplugin Ġsets Ġthe Ġcorrect Ġintent Ġ( mime ) Ġtype , ĊĠĠĠĠĠĠĠ Ġ// Ġso ĠAndroid Ġknew Ġwhat Ġapplication Ġto Ġuse Ġto Ġopen Ġthe Ġfile ĊĠĠĠĠĠĠĠ Ġif Ġ( url . toString (). contains (". doc ") Ġ|| Ġurl . toString (). contains (". docx ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWord Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / ms word ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". pdf ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPDF Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / pdf ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". ppt ") Ġ|| Ġurl . toString (). contains (". ppt x ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPower point Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / vnd . ms - power point ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". xls ") Ġ|| Ġurl . toString (). contains (". xlsx ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExcel Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / vnd . ms - excel ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". zip ") Ġ|| Ġurl . toString (). contains (". rar ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠW AV Ġaudio Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / x - wav ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". rtf ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠR TF Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" application / rtf ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". wav ") Ġ|| Ġurl . toString (). contains (". mp 3 ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠW AV Ġaudio Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" audio / x - wav ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". gif ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGIF Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" image / gif ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". jpg ") Ġ|| Ġurl . toString (). contains (". jpeg ") Ġ|| Ġurl . toString (). contains (". png ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠJ PG Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" image / jpeg ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". txt ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠText Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" text / plain ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url . toString (). contains (". 3 gp ") Ġ|| Ġurl . toString (). contains (". mp g ") Ġ|| Ġurl . toString (). contains (". mpeg ") Ġ|| Ġurl . toString (). contains (". mp e ") Ġ|| Ġurl . toString (). contains (". mp 4 ") Ġ|| Ġurl . toString (). contains (". avi ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠVideo Ġfiles ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ" video /* ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġyou Ġwant Ġyou Ġcan Ġalso Ġdefine Ġthe Ġintent Ġtype Ġfor Ġany Ġother Ġfile ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// add itionally Ġuse Ġelse Ġclause Ġbelow , Ġto Ġmanage Ġother Ġunknown Ġextensions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// in Ġthis Ġcase , ĠAndroid Ġwill Ġshow Ġall Ġapplications Ġinstalled Ġon Ġthe Ġdevice ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// so Ġyou Ġcan Ġchoose Ġwhich Ġapplication Ġto Ġuse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . setData And Type ( uri , Ġ"* /* ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġintent . add Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠ Ġ} Ċ } Ċ