package Ġcom . example . him om Ċ Ċ import Ġandroid . app . Pending Intent Ċ import Ġandroid . app . Service Ċ import Ġandroid . app . Task Stack Builder Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . support . v 4 . app . Notification Compat Ċ Ċ class ĠBack Ground Service Ġ: ĠService () Ġ{ ĊĠĠĠ Ġfun Ġunregister S NS Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Unregister ing ") ĊĠĠĠĠĠĠĠ Ġunregister Receiver ( m _ sms Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġm _ sms Listener : ĠS ms Listener ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ): ĠI Binder Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" Return Ġthe Ġcommunication Ġchannel Ġto Ġthe Ġservice .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġan ĠIntent Ġfor Ġthe Ġactivity Ġyou Ġwant Ġto Ġstart ĊĠĠĠĠĠĠĠ Ġval Ġresult Intent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe ĠTask Stack Builder ĊĠĠĠĠĠĠĠ Ġval Ġresult Pending Intent : ĠPending Intent ? Ġ= ĠTask Stack Builder . create ( this ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġintent , Ġwhich Ġinfl ates Ġthe Ġback Ġstack ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Next Intent With Parent Stack ( result Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠPending Intent Ġcontaining Ġthe Ġentire Ġback Ġstack ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Pending Intent ( 0 , ĠPending Intent . FLAG _ UPDATE _ CURRENT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNotification Compat . Builder ( this , Ġ" com . gab riel . ANDROID ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" SMS Ġlocation ĠRunning ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" SMS Ġlocation Ġis Ġrunning Ġin Ġthe Ġbackground ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . location icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ LOW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Intent ( result Pending Intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Foreground ( 1 , Ġnotification ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNotification Compat . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title (" I Ġam Ġrunning Ġin Ġthe Ġbackground ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text (" I Ġam Ġrunning Ġin Ġthe Ġbackground ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification Compat . PRIORITY _ LOW ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Ġ= Ġbuilder . build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Foreground ( 1 , Ġnotification ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent ?, Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġnumber Array Ġ= Ġintent !!. getString Array Extra (" number Array ") ĊĠĠĠĠĠĠĠ Ġm _ sms Listener Ġ= ĠS ms Listener ( number Array ) ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠIntent Filter () ĊĠĠĠĠĠĠĠ Ġfilter . addAction (" android . provider . Tele phony . SMS _ RECE IVED ") ĊĠĠĠĠĠĠĠ Ġregister Receiver ( m _ sms Listener , Ġfilter ) ĊĊĠĠĠĠĠĠĠ Ġsuper . onStart Command ( intent , Ġflags , Ġstart Id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠService . START _ NOT _ STICK Y ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ Ċ //// ĠĠĠĠĠĠĠ Ġsuper . on Destroy () Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" H ey Ġwe Ġare Ġd ye ing ") ĊĠĠĠĠĠĠĠ Ġunregister Receiver ( m _ sms Listener ) ĊĠĠĠĠĠĠĠ Ġthis . stop Foreground ( true ) ĊĠĠĠĠĠĠĠ Ġstop Self () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ // ĠĠĠ Ġfun Ġunregister S NS Listener () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġprintln (" Unregister ing ") Ċ // ĠĠĠĠĠĠĠ Ġunregister Receiver ( m _ sms Listener ) Ċ // ĠĠĠ Ġ} Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġunregister Receiver Companion () Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠBack Ground Service . unregister Receiver () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ Ċ } Ċ