마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

fusedLocationProviderClient 와 Recyclerview 갱신에 관하여 01

0 추천

안녕하세요

10초 간격으로 위치를 업데이트 받아 화면에 출력하여주는 화면을 생각하고 있습니다.

제가 이해한 바로는 Request에 interval을 1_000L 해두면 1초간격으로 업데이트 되는줄 알았습니다.

그런데 최초 앱 실행 이후 로그 한번 출력되고 interval이 안되네요
혹시 조건이

위치 이동이 발생한 후 콜백이 1초(인터벌)간격 뒤 라는 것일까요?

왜냐하면 5_000L 로 한뒤 이동하면 5초보다 더 지나서 로그가 뜨는데

1_000L 로하면 1초간격으로 업데이트 되는것 같고; 그래서 첫번째 조건이 위치이동이 있을것 인가요?

위치이동이 없다면 interval도 소용이 없는 걸까요?

제가 이해한 바로는 Request에 interval을 1_000L 해두면 1초간격으로 업데이트 되는줄 알았습니다.

그런데 최초 앱 실행 이후 로그 한번 출력되고 interval이 안되네요
혹시 조건이

위치 이동이 발생한 후 콜백이 1초(인터벌)간격 뒤 라는 것일까요?

왜냐하면 5_000L 로 한뒤 이동하면 5초보다 더 지나서 로그가 뜨는데

1_000L 로하면 1초간격으로 업데이트 되는것 같고; 그래서 첫번째 조건이 위치이동이 있을것 인가요?

위치이동이 없다면 interval도 소용이 없는 걸까요?

locationmanager보다 fusedlocationProviderclient 를 권장해서 사용해봤는데... 이렇게 사용하는게 아닐까요?

 

class MainActivity : AppCompatActivity() {

    private lateinit var flpc: FusedLocationProviderClient

    private lateinit var consoleAdapter: PrintAdapter

    var logs = mutableListOf<Item>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        flpc = LocationServices.getFusedLocationProviderClient(this)


        val locationRequest = LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 1_000L)
            .build()
        val locationCallback = object : LocationCallback() {
            override fun onLocationResult(locationResult: LocationResult) {
                locationResult.lastLocation?.let { location ->
                    Log.d("Location", "Latitude : ${location.latitude}, Longitude : ${location.longitude} , speed : ${location.speed}")
                }
            }
        }
        if (ActivityCompat.checkSelfPermission(
                this,
                Manifest.permission.ACCESS_FINE_LOCATION
            ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
                this,
                Manifest.permission.ACCESS_COARSE_LOCATION
            ) != PackageManager.PERMISSION_GRANTED
        ) {
            return
        }
        flpc.requestLocationUpdates(locationRequest, locationCallback, null)

    }
}

 

lullulalla (190 포인트) 님이 2월 16일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...