fork download
  1. package com.example.location
  2.  
  3. import android.annotation.SuppressLint
  4. import android.support.v7.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.widget.Button
  7. import com.google.android.gms.common.ConnectionResult
  8. import com.google.android.gms.common.api.GoogleApiClient
  9. import com.google.android.gms.location.LocationServices
  10. import kotlinx.android.synthetic.main.activity_main.*
  11.  
  12. class MainActivity : AppCompatActivity(), GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
  13.  
  14. // 宣告
  15. private lateinit var aGoogleApiClient: GoogleApiClient
  16.  
  17. @SuppressLint("MissingPermission")
  18. override fun onCreate(savedInstanceState: Bundle?) {
  19. super.onCreate(savedInstanceState)
  20. setContentView(R.layout.activity_main)
  21.  
  22. // 按下按鈕(Locate)時執行
  23. val getLocation = findViewById<Button>(R.id.Locate)
  24. getLocation.setOnClickListener{
  25.  
  26. // 取得權限,是一個 sub-function
  27. getPermission()
  28.  
  29. // 建立 GoogleApiClient 物件(服務?)
  30. aGoogleApiClient = GoogleApiClient.Builder(this)
  31. .addConnectionCallbacks(this)
  32. .addOnConnectionFailedListener(this)
  33. .addApi(LocationServices.API)
  34. .build()
  35.  
  36. // 得到 Location 結果
  37. val aLocation = LocationServices.getFusedLocationProviderClient(this)
  38. aLocation.lastLocation.addOnCompleteListener(this){
  39. task ->
  40. if(task.isSuccessful && task.result != null){
  41. val aLatitude = task.result.latitude
  42. val aLongitude = task.result.longitude
  43. Latitude.text = aLatitude.toString() // Here get latitude.
  44. Longitude.text = aLongitude.toString() // Here get longitude.
  45. }
  46. }
  47. }
  48. }
  49.  
  50. // ----------------------------------------
  51. //
  52. // 取得權限,所有權限都可以寫進來,不確定是不是這樣就開啟。
  53. private fun getPermission() {
  54. /* 正式寫法
  55.   if(android.support.v4.app.ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED){
  56.   android.support.v4.app.ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION),34)
  57.   }
  58.   */
  59. android.support.v4.app.ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION),34) // 看網路上有人給這樣的值,然後看起來可以跑
  60. android.support.v4.app.ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_COARSE_LOCATION),34) // 看網路上有人給這樣的值,然後看起來可以跑
  61. }
  62. //
  63. // 伴隨 addConnectionCallbacks 而來,不加會錯。
  64. // 正常連接上要寫這邊,但我寫這邊沒有反應-.-
  65. override fun onConnected(p0: Bundle?) {
  66. // Do not thing
  67. }
  68. //
  69. // 伴隨 addConnectionCallbacks 而來,不加會錯。
  70. override fun onConnectionSuspended(p0: Int) {
  71. // Do not thing
  72. }
  73. //
  74. // 伴隨 addOnConnectionFailedListener 而來,不加會錯。
  75. override fun onConnectionFailed(p0: ConnectionResult) {
  76. // Do not thing
  77. }
  78. // ----------------------------------------
  79.  
  80. }
  81.  
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.support.v7.app.AppCompatActivity
                                               ^
Main.java:5: error: ';' expected
import android.os.Bundle
                        ^
Main.java:6: error: ';' expected
import android.widget.Button
                            ^
Main.java:7: error: ';' expected
import com.google.android.gms.common.ConnectionResult
                                                     ^
Main.java:8: error: ';' expected
import com.google.android.gms.common.api.GoogleApiClient
                                                        ^
Main.java:9: error: ';' expected
import com.google.android.gms.location.LocationServices
                                                       ^
Main.java:10: error: ';' expected
import kotlinx.android.synthetic.main.activity_main.*
                                                     ^
Main.java:12: error: '{' expected
class MainActivity : AppCompatActivity(), GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
                  ^
Main.java:15: error: ';' expected
    private lateinit var aGoogleApiClient: GoogleApiClient
                        ^
Main.java:15: error: <identifier> expected
    private lateinit var aGoogleApiClient: GoogleApiClient
                                         ^
Main.java:17: error: illegal start of type
    @SuppressLint("MissingPermission")
    ^
Main.java:18: error: ';' expected
    override fun onCreate(savedInstanceState: Bundle?) {
            ^
Main.java:18: error: <identifier> expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                            ^
Main.java:18: error: ';' expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                             ^
Main.java:18: error: illegal start of type
    override fun onCreate(savedInstanceState: Bundle?) {
                                                    ^
Main.java:18: error: <identifier> expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                                     ^
Main.java:18: error: ';' expected
    override fun onCreate(savedInstanceState: Bundle?) {
                                                      ^
Main.java:19: error: illegal start of type
        super.onCreate(savedInstanceState)
        ^
Main.java:19: error: <identifier> expected
        super.onCreate(savedInstanceState)
             ^
Main.java:19: error: ';' expected
        super.onCreate(savedInstanceState)
              ^
Main.java:19: error: illegal start of type
        super.onCreate(savedInstanceState)
                      ^
Main.java:19: error: ';' expected
        super.onCreate(savedInstanceState)
                                         ^
Main.java:20: error: invalid method declaration; return type required
        setContentView(R.layout.activity_main)
        ^
Main.java:20: error: <identifier> expected
        setContentView(R.layout.activity_main)
                                             ^
Main.java:20: error: ';' expected
        setContentView(R.layout.activity_main)
                                              ^
Main.java:23: error: illegal start of type
        val getLocation = findViewById<Button>(R.id.Locate)
                                              ^
Main.java:23: error: '(' expected
        val getLocation = findViewById<Button>(R.id.Locate)
                                               ^
Main.java:23: error: illegal start of type
        val getLocation = findViewById<Button>(R.id.Locate)
                                                ^
Main.java:23: error: ';' expected
        val getLocation = findViewById<Button>(R.id.Locate)
                                                   ^
Main.java:23: error: <identifier> expected
        val getLocation = findViewById<Button>(R.id.Locate)
                                                          ^
Main.java:24: error: <identifier> expected
        getLocation.setOnClickListener{
                                      ^
Main.java:27: error: invalid method declaration; return type required
            getPermission()
            ^
Main.java:27: error: ';' expected
            getPermission()
                           ^
Main.java:40: error: illegal start of expression
                if(task.isSuccessful && task.result != null){
                ^
Main.java:39: error: not a statement
                task ->
                ^
Main.java:40: error: not a statement
                if(task.isSuccessful && task.result != null){
                  ^
Main.java:40: error: ';' expected
                if(task.isSuccessful && task.result != null){
                                                            ^
Main.java:41: error: ';' expected
                    val aLatitude  = task.result.latitude
                                                         ^
Main.java:42: error: ';' expected
                    val aLongitude = task.result.longitude
                                                          ^
Main.java:43: error: ';' expected
                    Latitude.text = aLatitude.toString()  //  Here get latitude.
                                                        ^
Main.java:44: error: ';' expected
                    Longitude.text = aLongitude.toString()  //  Here get longitude.
                                                          ^
Main.java:48: error: class, interface, or enum expected
    }
    ^
44 errors
stdout
Standard output is empty