GPS 기능 사용을 위해 다음과 같이 권한 확인을 하고
lastLocation 메소드를 통해 위치정보를 가져온 후
딜레이를 걸어 반복 호출을 시켰는데..
이동을 해도 위도경도가 계속 동일하게 뜹니다ㅜㅜ
신기한건 네이버 지도를 켰다가 다시 앱을 들어가보면 위치가 바껴요.. 왜이럴까요?
도와주실 공유 남주혁 강동원 계신가요??
(해당 프로젝트 깃 주소입니다)
https://github.com/theStoryOfBlue/LocationPractice.git
import android.Manifest
import android.content.pm.PackageManager
import android.location.Location
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import androidx.lifecycle.lifecycleScope
import com.example.locationpractice.databinding.ActivityMainBinding
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices
import kotlinx.coroutines.delay
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
Location()
}
fun Location() {
Log.e(javaClass.simpleName, "Location start : ",)
lifecycleScope.launchWhenCreated {
while (true) {
count++
val fusedLocationClient: FusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(application)
if (ActivityCompat.checkSelfPermission(
application,
Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
application,
Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
Log.e(javaClass.simpleName, "return : ",)
return@launchWhenCreated
}
fusedLocationClient.lastLocation.addOnSuccessListener { location: Location? ->
if (location != null) {
val latitude = location.latitude
val longitude = location.longitude
binding.text.text =
"GPS Location Latitude: $latitude, Longitude: $longitude, Couint : $count"
Log.e(
javaClass.simpleName,
"GPS Location Latitude: $latitude" +
", Longitude: $longitude",
)
}
}
delay(1500L)
}
}
}
}