package Ġcom . mt j . map Ċ Ċ 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 Client Option . A Map Location Mode Ċ import Ġcom . mt j . common . base . Base Activity Ċ import Ġcom . mt j . common . inter f . Permission CallBack Ċ import Ġcom . yan zh en j ie . permission . runtime . Permission Ċ import Ġkotlinx . android . synt hetic . main . activity _ map _ location .* ĊĊ Ċ /** Ċ Ġ* Ġ@ author Ġ Ġ åŃ Ł èħ ¾ èĽ Ł Ċ Ġ* Ġ@ Description Ċ Ġ* Ġ@ date Ġ 2 0 2 1 / 1 / 2 2 Ċ Ġ*/ Ċ class ĠMap Location Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġset View (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ map _ location ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . after Creation () ĊĠĠĠĠĠĠĠ Ġbtn Location . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Permission ( Permission CallBack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( btn Location . text Ġ== Ġ" å¼Ģå§ĭ å®ļä½į ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" å¼Ģå§ĭ å®ļä½į "). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Location . text Ġ= Ġ" ç»ĵæĿŁ å®ļä½į " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm location Client ?. stop Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm location Client ?. start Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Location . text Ġ= Ġ" å¼Ģå§ĭ å®ļä½į " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm location Client ?. stop Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠPermission . ACCESS _ F INE _ LOCATION , ĠPermission . ACCESS _ CO AR SE _ LOCATION ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Once Location . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Permission ( Permission CallBack Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" åįķ æ¬¡ å®ļä½į "). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Location . text Ġ= Ġ" å¼Ģå§ĭ å®ļä½į " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm location Client ?. stop Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Once Location () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm location Client ?. start Location () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠPermission . ACCESS _ F INE _ LOCATION , ĠPermission . ACCESS _ CO AR SE _ LOCATION ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Clean . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Info . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm location Client : ĠA Map Location Client ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Location Option : ĠA Map Location Client Option ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsb Ġ= ĠStringBuilder () ĊĠĠĠ Ġprivate Ġfun Ġinit Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġm location Client Ġ= ĠA Map Location Client ( this ) ĊĠĠĠĠĠĠĠ Ġm Location Option Ġ= ĠA Map Location Client Option () ĊĠĠĠĠĠĠĠ Ġm location Client ?. setLocation Listener Ġ{ Ġa Map Location Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Map Location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Map Location . errorCode Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" lat : Ġ${ a Map Location . latitude } "). append (" Ġlng : Ġ${ a Map Location . longitude } "). append ("\ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĺ¾ç¤º éĶĻè¯¯ ä¿¡æģ¯ Err Code æĺ¯ éĶĻè¯¯ çłģ ï¼Į err Info æĺ¯ éĶĻè¯¯ ä¿¡æģ¯ ï¼Į è¯¦ è§ģ éĶĻè¯¯ çłģ è¡¨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ((" location ĠError , ĠErr Code :" Ġ+ Ġa Map Location . errorCode ) Ġ+ Ġ", Ġerr Info :" Ġ+ Ġa Map Location . error Info ). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Info . text Ġ= Ġsb . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Location Option ?. location Mode Ġ= ĠA Map Location Mode . H ight _ Accuracy ĊĠĠĠĠĠĠĠ Ġm Location Option ?. location Mode Ġ= ĠA Map Location Mode . Battery _ Saving ; ĊĠĠĠĠĠĠĠ Ġm Location Option ?. is Need Address Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Location Option ?. interval Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠ Ġm location Client ?. setLocation Option ( m Location Option ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åįķ æ¬¡ å®ļä½į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit Once Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġm location Client Ġ= ĠA Map Location Client ( this ) ĊĠĠĠĠĠĠĠ Ġm Location Option Ġ= ĠA Map Location Client Option () ĊĠĠĠĠĠĠĠ Ġm location Client ?. setLocation Listener Ġ{ Ġa Map Location Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Map Location Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a Map Location . errorCode Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" lat : Ġ${ a Map Location . latitude } "). append (" Ġlng : Ġ${ a Map Location . longitude } "). append ("\ n ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĺ¾ç¤º éĶĻè¯¯ ä¿¡æģ¯ Err Code æĺ¯ éĶĻè¯¯ çłģ ï¼Į err Info æĺ¯ éĶĻè¯¯ ä¿¡æģ¯ ï¼Į è¯¦ è§ģ éĶĻè¯¯ çłģ è¡¨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ((" location ĠError , ĠErr Code :" Ġ+ Ġa Map Location . errorCode ) Ġ+ Ġ", Ġerr Info :" Ġ+ Ġa Map Location . error Info ). append ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Info . text Ġ= Ġsb . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Location Option ?. location Mode Ġ= ĠA Map Location Mode . H ight _ Accuracy ĊĠĠĠĠĠĠĠ Ġm Location Option ?. location Mode Ġ= ĠA Map Location Mode . Battery _ Saving ; ĊĠĠĠĠĠĠĠ Ġm Location Option ?. is Need Address Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm Location Option ?. is Once Location Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġm location Client ?. setLocation Option ( m Location Option ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġm location Client ?. on Destroy () ĊĠĠĠ Ġ} Ċ Ċ }