package Ġcom . example . location Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Activity Compat Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġcom . google . android . gms . location .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ// Ġ Ġæ ¬ Ĭ éĻĲ åĲĮ æĦı åĢ¼ ĊĠĠĠ Ġprivate Ġvar Ġuser Ag ree Permission Code Ġ= Ġ 1 ĊĊĠĠĠ Ġ// Ġ Ġ å®ļä½į æľį åĭĻ çļĦ çī© ä»¶ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Location Client : ĠF used Location Provider Client ĊĊĠĠĠ Ġ// Ġ ĠæĽ´ æĸ°çļĦ åĢ¼ æľĥ åľ¨ éĢĻ åĢĭ çī© ä»¶ åĩº çı¾ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Location Callback : ĠLocation Callback ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġæ ¬ Ĭ éĻĲ Ġ=> Ġ æľĥ åĳ¼ åı« Ġon Request Permissions Result ĊĠĠĠĠĠĠĠ Ġval Ġsome Permission Ġ= ĠarrayOf ( android . Manifest . permission . ACCESS _ CO AR SE _ LOCATION , Ġandroid . Manifest . permission . ACCESS _ F INE _ LOCATION ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( p Ġin Ġsome Permission Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Activity Compat . check Self Permission ( this , Ġp ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , Ġsome Permission Ġ, Ġuser Ag ree Permission Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ ç į ² åıĸ çĽ®åīį ä½įç½® çļĦ æĮī é Ī ķ ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . Loc ate ). setOnClickListener { ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åķ Ł åĭķ å®ļä½į çī© ä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location Client Ġ= ĠLocation Services . getF used Location Provider Client ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ å®ļä½į åı ĥ æķ¸ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Location Request Ġ= ĠLocation Request (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġ 1 0 0 0 * 6 0 * 6 0 * 2 4 0 Ġ Ġ// Ġ Ġåıª æĥ³è¦ģ å®ļä½į ä¸Ģæ¬¡ Ġ=> Ġ æīĢä»¥ æĽ´æĸ° éł » çİĩ è¶³ å¤ ł å¤§ å°±åı¯ä»¥ Ġ=> Ġ ä¾ĭå¦Ĥ å¾Ī å°ĳ äºº ĠAPP Ġåı¯ä»¥ çĶ¨ Ġ 1 0 Ġ å¤© çļĦ Ġ=> Ġ ä½Ĩ æľĥ ä¸į æľĥ å¾Ī èĢĹ éĽ» å°± ä¸į çŁ¥éģĵ äºĨ Ġ=> Ġ éĤ Ħ æľī ç¶² è·¯ çļĦ æµģ éĩı åķıé¡Į ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfast est Interval Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpriority Ġ= ĠLocation Request . PRIORITY _ HIGH _ AC CUR ACY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ çķ ¶ åīį å®ļä½į çļĦ çµĲæŀľ åľ¨ éĢĻ éĤ Ĭ åĩº çı¾ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location Callback Ġ= Ġobject Ġ: ĠLocation Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Location Result ( location Result : ĠLocation Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Result Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( location Ġin Ġlocation Result . locations ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ çķ ¶ åīį ä½¿çĶ¨ èĢħ çļĦ ç¶ ĵ ç· ¯ åº¦ åľ¨ éĢĻ è£ ¡ Ġ=> Ġ éĢĻ è£ ¡ ä¸į çĶ¨ èª ª æĺİ åı¯èĥ½ éĿŀ ç©º Ġ=> Ġ åĽł çĤº æĺ¯ åħĪ æĽ´æĸ° åĨį å¾ĹåĪ° åº§ æ¨Ļ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . Longitude ). text Ġ= Ġlocation . longitude . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . Latitude ). text Ġ= Ġlocation . latitude . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åķ Ł åĭķ æĽ´æĸ° åĬŁèĥ½ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location Client . request Location Updates ( user Location Request , user Location Callback , null ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĽ ¢ éĸĭ æĮī é Ī ķ ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . Close ). setOnClickListener { ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĹ ľ æİī æĽ´æĸ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Location Client . remove Location Updates ( user Location Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ Ġ-------------------------------- --------- ĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < String >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Ag ree Permission Code Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( Ġi Ġin Ġ 0 .. ( grant Results . size - 1 ) Ġ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( grant Results . isNotEmpty () Ġ&& Ġgrant Results [ i ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Status :", Ġ" Ag ree Ġa Ġpermission ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġ Ġ-------------------------------- --------- Ċ } Ċ