package Ġcom . and ream aro zz i . b tle . scanner . example . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . annotation . Color Int Ċ import Ġandroid . support . annotation . Color Res Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ Ċ fun ĠContext . has Permission ( var arg Ġpermission : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġcheck Permission ( permission ). isEmpty () Ċ } Ċ Ċ /** Ċ Ġ* ĠCont roll a Ġse Ġla Ġlista Ġdei Ġper mess in Ġin Ġingress o ĠÃ¨ Ġst ata Ġcon cess a , Ġin Ġcaso Ġcontr ario Ġrest it uis ce Ċ Ġ* Ġla Ġlista Ġdei Ġper mess i Ġda Ġch ied ere Ċ Ġ* Ċ Ġ* Ġ@ param Ġpermission Ġper mis si Ġda Ġcont roll are Ċ Ġ* Ġ@ return Ġla Ġlista Ġdei Ġper mess i Ġda Ġch ied ere Ċ Ġ*/ Ċ fun ĠContext . check Permission ( permission : ĠArray < out ĠString >): ĠArray < String > Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Not Granted Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġpermission . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Permission Granted ( permission [ i ])) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Not Granted . add ( permission [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġp Not Granted . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠarrayOf () Ċ } Ċ Ċ /** Ċ Ġ* ĠCont roll a Ġse Ġil Ġper mess o Ġin Ġingress o ĠÃ¨ Ġstat o Ġcon cesso Ċ Ġ* Ċ Ġ* Ġ@ param Ġpermission Ġper mess o Ġda Ġcont roll are . Ċ Ġ* ĠE sempio ĠManifest . permission . READ _ SMS , ĠManifest . permission . SEND _ SMS , ĠManifest . permission . RECEIVE _ SMS Ċ Ġ* Ġ@ return Ġtrue Ġper mess o Ġcon cesso , Ġfalse Ġin Ġcaso Ġcontr ario Ċ Ġ*/ Ċ fun ĠContext . is Permission Granted ( permission : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn ĠContext Compat . check Self Permission ( this , Ġpermission ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED Ċ }