package Ġcom . g lie sel abs . device _ check . ext Storage Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . content . pm . Package Info Ċ import Ġandroid . content . pm . PackageManager ĊĊ Ċ class ĠExternal Storage Check Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġis On External Storage ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpm : ĠPackage Manager Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpi : ĠPackage Info Ġ= Ġpm . get Package Info ( context . packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġai Ġ= Ġpi . application Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġai . flags Ġand ĠApplication Info . FLAG _ EXTERNAL _ STORAGE Ġ== ĠApplication Info . FLAG _ EXTERNAL _ STORAGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġignore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Dir : ĠString Ġ= Ġcontext . files Dir . absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( files Dir . startsWith ("/ data / ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( files Dir . contains ("/ mnt /") Ġ|| Ġfiles Dir . contains ("/ sd card / ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġignore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }