fork download
  1. package com.example.location
  2.  
  3. import android.annotation.SuppressLint
  4. import android.content.pm.PackageManager
  5. import android.location.Location
  6. import android.support.v7.app.AppCompatActivity
  7. import android.os.Bundle
  8. import android.support.v4.app.ActivityCompat
  9. import android.widget.Button
  10. import android.widget.TextView
  11. import com.google.android.gms.location.FusedLocationProviderClient
  12. import com.google.android.gms.location.LocationServices
  13.  
  14.  
  15.  
  16. class MainActivity : AppCompatActivity() {
  17.  
  18. private lateinit var userLocationProviderClient: FusedLocationProviderClient
  19. private var userAgreePermissionCode = 1
  20.  
  21. @SuppressLint("SetTextI18n")
  22. override fun onCreate(savedInstanceState: Bundle?) {
  23. super.onCreate(savedInstanceState)
  24. setContentView(R.layout.activity_main)
  25.  
  26. // 檢查並要求權限 => "onRequestPermissionsResult"
  27. val currentPermission = ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)
  28. if( currentPermission!=PackageManager.PERMISSION_GRANTED ) ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), userAgreePermissionCode)
  29.  
  30. // 想在這邊只更新一次定位接著用 lastLocation 抓出座標
  31. // 要怎麼寫???
  32.  
  33. // 獲取上一次定位座標按鈕
  34. findViewById<Button>(R.id.Locate).setOnClickListener{
  35. userLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
  36. userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? ->
  37.  
  38. // 獲取上一次定位的座標 => 但如果沒紀錄可能為空
  39. if( (location?.longitude!=null) ){
  40. val userLongitude = location.longitude
  41. // findViewById<TextView>(R.id.Longitude).text = userLongitude.toString()
  42. }
  43. if(location?.latitude!=null){
  44. val userLatitude = location.latitude
  45. // findViewById<TextView>(R.id.Latitude).text = userLatitude.toString()
  46. }
  47. }
  48. }
  49.  
  50. // 重置按鈕執行
  51. findViewById<Button>(R.id.Reset).setOnClickListener{
  52. // findViewById<TextView>(R.id.Longitude).text = "經度(Longitude)"
  53. // findViewById<TextView>(R.id.Latitude).text = "緯度(Latitude)"
  54. }
  55.  
  56. // 離開按鈕執行
  57. findViewById<Button>(R.id.Close).setOnClickListener{
  58. finish()
  59. }
  60. }
  61.  
  62. // ----------------------------------------------------
  63. override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
  64. when (requestCode) {
  65. userAgreePermissionCode -> {
  66. if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)){
  67. // Permission was granted.
  68. }else{
  69. // Permission denied.
  70. finish()
  71. }
  72. }
  73. // Other
  74. else -> {}
  75. }
  76. }
  77. // ----------------------------------------------------
  78. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: ';' expected
package com.example.location
                            ^
Main.java:3: error: ';' expected
import android.annotation.SuppressLint
                                      ^
Main.java:4: error: ';' expected
import android.content.pm.PackageManager
                                        ^
Main.java:5: error: ';' expected
import android.location.Location
                                ^
Main.java:6: error: ';' expected
import android.support.v7.app.AppCompatActivity
                                               ^
Main.java:7: error: ';' expected
import android.os.Bundle
                        ^
Main.java:8: error: ';' expected
import android.support.v4.app.ActivityCompat
                                            ^
Main.java:9: error: ';' expected
import android.widget.Button
                            ^
Main.java:10: error: ';' expected
import android.widget.TextView
                              ^
Main.java:11: error: ';' expected
import com.google.android.gms.location.FusedLocationProviderClient
                                                                  ^
Main.java:12: error: ';' expected
import com.google.android.gms.location.LocationServices
                                                       ^
Main.java:16: error: '{' expected
class MainActivity : AppCompatActivity() {
                  ^
Main.java:18: error: ';' expected
    private lateinit var userLocationProviderClient: FusedLocationProviderClient
                        ^
Main.java:18: error: <identifier> expected
    private lateinit var userLocationProviderClient: FusedLocationProviderClient
                                                   ^
Main.java:18: error: <identifier> expected
    private lateinit var userLocationProviderClient: FusedLocationProviderClient
                                                                                ^
Main.java:21: error: illegal start of expression
    @SuppressLint("SetTextI18n")
    ^
Main.java:21: error: ';' expected
    @SuppressLint("SetTextI18n")
                                ^
Main.java:22: error: <identifier> expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                            ^
Main.java:22: error: ';' expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                             ^
Main.java:22: error: illegal start of type
    override fun onCreate(savedInstanceState: Bundle?) {
                                                    ^
Main.java:22: error: <identifier> expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                                     ^
Main.java:22: error: ';' expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                                      ^
Main.java:23: error: illegal start of type
        super.onCreate(savedInstanceState)
        ^
Main.java:23: error: <identifier> expected
        super.onCreate(savedInstanceState)
             ^
Main.java:23: error: ';' expected
        super.onCreate(savedInstanceState)
              ^
Main.java:23: error: illegal start of type
        super.onCreate(savedInstanceState)
                      ^
Main.java:23: error: ';' expected
        super.onCreate(savedInstanceState)
                                         ^
Main.java:24: error: invalid method declaration; return type required
        setContentView(R.layout.activity_main)
        ^
Main.java:24: error: <identifier> expected
        setContentView(R.layout.activity_main)
                                             ^
Main.java:24: error: ';' expected
        setContentView(R.layout.activity_main)
                                              ^
Main.java:34: error: illegal start of type
        findViewById<Button>(R.id.Locate).setOnClickListener{
                            ^
Main.java:34: error: '(' expected
        findViewById<Button>(R.id.Locate).setOnClickListener{
                             ^
Main.java:34: error: illegal start of type
        findViewById<Button>(R.id.Locate).setOnClickListener{
                              ^
Main.java:34: error: ';' expected
        findViewById<Button>(R.id.Locate).setOnClickListener{
                                 ^
Main.java:34: error: <identifier> expected
        findViewById<Button>(R.id.Locate).setOnClickListener{
                                        ^
Main.java:34: error: illegal start of type
        findViewById<Button>(R.id.Locate).setOnClickListener{
                                         ^
Main.java:34: error: ';' expected
        findViewById<Button>(R.id.Locate).setOnClickListener{
                                                            ^
Main.java:35: error: ';' expected
            userLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
                                                                                              ^
Main.java:36: error: not a statement
            userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? ->
                                                   ^
Main.java:36: error: ';' expected
            userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? ->
                                                                        ^
Main.java:36: error: illegal start of expression
            userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? ->
                                                                                                ^
Main.java:39: error: illegal start of expression
                if( (location?.longitude!=null) ){
                ^
Main.java:36: error: not a statement
            userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? ->
                                                                                              ^
Main.java:39: error: ';' expected
                if( (location?.longitude!=null) ){
                  ^
Main.java:39: error: illegal start of expression
                if( (location?.longitude!=null) ){
                              ^
Main.java:39: error: not a statement
                if( (location?.longitude!=null) ){
                    ^
Main.java:39: error: ';' expected
                if( (location?.longitude!=null) ){
                                               ^
Main.java:40: error: ';' expected
                    val userLongitude = location.longitude
                                                          ^
Main.java:43: error: illegal start of expression
                if(location?.latitude!=null){
                            ^
Main.java:44: error: ';' expected
                    val userLatitude = location.latitude
                                                        ^
Main.java:51: error: <identifier> expected
        findViewById<Button>(R.id.Reset).setOnClickListener{
                            ^
Main.java:51: error: <identifier> expected
        findViewById<Button>(R.id.Reset).setOnClickListener{
                                       ^
Main.java:51: error: ';' expected
        findViewById<Button>(R.id.Reset).setOnClickListener{
                                        ^
Main.java:57: error: <identifier> expected
        findViewById<Button>(R.id.Close).setOnClickListener{
                            ^
Main.java:57: error: <identifier> expected
        findViewById<Button>(R.id.Close).setOnClickListener{
                                       ^
Main.java:57: error: ';' expected
        findViewById<Button>(R.id.Close).setOnClickListener{
                                        ^
Main.java:58: error: ';' expected
            finish()
                    ^
Main.java:63: error: class, interface, or enum expected
    override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
    ^
58 errors
stdout
Standard output is empty