package Ġch en mc . sms . transaction . service čĊč Ċ import Ġandroid . app . Service č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . os . Handler č Ċ import Ġandroid . os . Handler Thread č Ċ import Ġandroid . os . IB inder č Ċ import Ġandroid . os . Looper č Ċ import Ġandroid . os . Message č Ċ import Ġandroid . os . Process č Ċ import Ġch en mc . sms . transaction . Sms Extractor č Ċ import Ġch en mc . sms . transaction . Sms Handler Executor čĊč Ċ /** čĊ Ġ* Ġ@ author Ġ æĺİ Ġ æĺİ čĊ Ġ* ĠCreated Ġon Ġ 2 0 1 7 - 4 - 2 8 . čĊ Ġ*/ čĊč Ċ class ĠS ms Receive Service Ġ: ĠService () Ġ{ čĊĠĠĠĠčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġservice Handler : ĠHandler čĊĠĠĠĠčĊĠĠĠ Ġoverride Ġfun Ġon Bind ( intent : ĠIntent ): ĠI Binder ? Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġnull čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate () čĊĠĠĠĠĠĠĠ Ġ// Ġ æĸ° å¼Ģ ä¸Ģä¸ª çº¿ç¨ĭ è¿Ľè¡Į å¤ĦçĲĨ čĊĠĠĠĠĠĠĠ Ġval Ġhandler Thread Ġ= ĠHandler Thread ( java Class . simple Name , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProcess . THREAD _ PRIORITY _ MORE _ FA V OR ABLE ) čĊĠĠĠĠĠĠĠ Ġhandler Thread . start () čĊĠĠĠĠĠĠĠĠčĊĠĠĠĠĠĠĠ Ġservice Handler Ġ= ĠService Handler ( handler Thread . lo oper ) čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġoverride Ġfun ĠonStart Command ( intent : ĠIntent , Ġflags : ĠInt , Ġstart Id : ĠInt ): ĠInt Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġservice Handler . obtain Message () čĊĠĠĠĠĠĠĠ Ġ// Ġ ä¿ĿåŃĺ Ġstart Id čĊĠĠĠĠĠĠĠ Ġmsg . arg 1 Ġ= Ġstart Id čĊĠĠĠĠĠĠĠ Ġ// Ġ ä¿ĿåŃĺ Ġintent Ġ åĪ° Ġmsg . obj čĊĠĠĠĠĠĠĠ Ġmsg . obj Ġ= Ġintent čĊĠĠĠĠĠĠĠ Ġservice Handler . sendMessage ( msg ) čĊĠĠĠĠĠĠĠĠčĊĠĠĠĠĠĠĠ Ġreturn ĠService . START _ NOT _ STICK Y čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () čĊĠĠĠĠĠĠĠĠčĊĠĠĠĠĠĠĠ Ġ// ĠService Ġ åģľæŃ¢ æĹ¶ åģľæŃ¢ çº¿ç¨ĭ čĊĠĠĠĠĠĠĠ Ġservice Handler . lo oper . quit () čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġprivate Ġinner Ġclass ĠService Handler Ġinternal Ġconstructor ( lo oper : ĠL ooper ) Ġ: ĠHandler ( lo oper ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsms Handler Executor : ĠS ms Handler Executor Ġ= ĠS ms Handler Executor ( this @ Sms Receive Service ) čĊčĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġmsg . obj Ġas ĠIntent čĊĠĠĠĠ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä»İ ĠIntent Ġä¸Ń èİ·åıĸ çŁŃ ä¿¡ åĨħå®¹ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsms Ġ= ĠS ms Extractor . extract From Intent ( intent ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çŁŃ ä¿¡ æī§è¡Į åĻ¨ æī§è¡Į čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsms Handler Executor . execute ( sms ) čĊĠĠĠĠĠĠĠĠĠĠĠĠčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä½¿çĶ¨ Ġstart Id Ġ åģľæŃ¢ ĠService čĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Self Result ( msg . arg 1 ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ