package Ġcom . yang . lib _ common . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ import Ġcom . amap . api . location . A Map Location Ċ import Ġcom . amap . api . location . A Map Location Client Ċ import Ġcom . amap . api . location . A Map Location Client Option Ċ import Ġcom . amap . api . location . A Map Location Listener Ċ import Ġcom . yang . lib _ common . app . Base Application Ċ Ċ /** Ċ Ġ* Ġ@ Author ĠAdministrator Ċ Ġ* Ġ@ ClassName ĠLocation Util Ċ Ġ* Ġ@ Description Ċ Ġ* Ġ@ Date Ġ 2 0 2 1 / 8 / 2 0 Ġ 1 1 : 4 0 Ċ Ġ*/ Ċ class ĠLocation Util Ġconstructor ( val Ġcontext : ĠContext ): ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Location Util " ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġa Map Location Client Option : ĠA Map Location Client Option ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġa Map Location Client : ĠA Map Location Client ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Location Listener : ĠA Map Location Listener ĊĠĠĠ Ġvar Ġlocation Listener : ĠLocation Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġinterface ĠLocation Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Location Listener ( a Map Location : ĠA Map Location ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Location () Ġ{ ĊĠĠĠĠĠĠĠ ĠA Map Location Client . update Privacy Ag ree ( context , true ) ĊĠĠĠĠĠĠĠ ĠA Map Location Client . update Privacy Show ( context , true , true ) ĊĠĠĠĠĠĠĠ Ġa Map Location Client Option Ġ= ĠA Map Location Client Option () ĊĠĠĠĠĠĠĠ Ġa Map Location Client Ġ= ĠA Map Location Client ( Base Application . base Application ) ĊĠĠĠĠĠĠĠ Ġ// åĽŀè°ĥ çĽĳåĲ¬ ĊĠĠĠĠĠĠĠ Ġm Location Listener Ġ= ĠA Map Location Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Listener ?. on Location Listener ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . errorCode Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" start Location : Ġ${ it . toString ()} Ġ Ġ${ it . to Str () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" location ĠError , ĠErr Code :${ it . errorCode }, Ġerr Info :${ it . error Info }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Map Location Client . stop Location () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġa Map Location Client . setLocation Listener ( m Location Listener ) ĊĊĠĠĠĠĠĠĠ Ġ// åľºæĻ¯ æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġa Map Location Client Option . location Purpose Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA Map Location Client Option . A Map Location Purpose . SignIn ĊĠĠĠĠĠĠĠ Ġa Map Location Client . stop Location () ĊĊĠĠĠĠĠĠĠ Ġ// å®ļä½į æ¨¡å¼ı ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Network Util . is Network Client ( Base Application . base Application )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Map Location Client Option . location Mode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Map Location Client Option . A Map Location Mode . H ight _ Accuracy ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa Map Location Client Option . location Mode Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA Map Location Client Option . A Map Location Mode . Device _ Sensors ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġa Map Location Client Option . is Need Address Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġa Map Location Client Option . is Mock Enable Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġa Map Location Client Option . http TimeOut Ġ= Ġ 2 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġa Map Location Client Option . is Location Cache Enable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġa Map Location Client . setLocation Option ( a Map Location Client Option ) ĊĠĠĠĠĠĠĠ Ġa Map Location Client . start Location () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġstop Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġa Map Location Client . stop Location () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġa Map Location Client . on Destroy () ĊĠĠĠ Ġ} Ċ }