package com.example.location import android.annotation.SuppressLint import android.content.pm.PackageManager import android.location.Location import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.support.v4.app.ActivityCompat import android.widget.Button import android.widget.TextView import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationServices class MainActivity : AppCompatActivity() { private lateinit var userLocationProviderClient: FusedLocationProviderClient private var userAgreePermissionCode = 1 @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 檢查並要求權限 => "onRequestPermissionsResult" val currentPermission = ActivityCompat.checkSelfPermission(this,android.Manifest.permission.ACCESS_FINE_LOCATION) if( currentPermission!=PackageManager.PERMISSION_GRANTED ) ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), userAgreePermissionCode) // 想在這邊只更新一次定位接著用 lastLocation 抓出座標 // 要怎麼寫??? // 獲取上一次定位座標按鈕 findViewById<Button>(R.id.Locate).setOnClickListener{ userLocationProviderClient = LocationServices.getFusedLocationProviderClient(this) userLocationProviderClient.lastLocation.addOnSuccessListener { location : Location? -> // 獲取上一次定位的座標 => 但如果沒紀錄可能為空 if( (location?.longitude!=null) ){ val userLongitude = location.longitude // findViewById<TextView>(R.id.Longitude).text = userLongitude.toString() } if(location?.latitude!=null){ val userLatitude = location.latitude // findViewById<TextView>(R.id.Latitude).text = userLatitude.toString() } } } // 重置按鈕執行 findViewById<Button>(R.id.Reset).setOnClickListener{ // findViewById<TextView>(R.id.Longitude).text = "經度(Longitude)" // findViewById<TextView>(R.id.Latitude).text = "緯度(Latitude)" } // 離開按鈕執行 findViewById<Button>(R.id.Close).setOnClickListener{ finish() } } // ---------------------------------------------------- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { when (requestCode) { userAgreePermissionCode -> { if ((grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED)){ // Permission was granted. }else{ // Permission denied. finish() } } // Other else -> {} } } // ---------------------------------------------------- }
Standard input is empty
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
Standard output is empty