GPS Fix после GpsStatus устарела - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь изменить переменную, когда GPS исправить.Но после API 24 GpsStatus устарел.Поэтому я делаю код для API <24 и API => 24.

class MainActivity : FragmentActivity(), LocationListener {

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

        locationManager = this.getSystemService(Context.LOCATION_SERVICE) as LocationManager

locationManager?.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1f, this)

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            val GnssCallback: GnssStatus.Callback = object : GnssStatus.Callback() {
                override fun onFirstFix(ttffMillis: Int) : Unit {
                    super.onFirstFix(ttffMillis)
                    GPSon = true
                }

                override fun onStopped() {
                    super.onStopped()
                    GPSon = false
                }
            }
        }

    }

    @Suppress("DEPRECATION")
    override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {

        Log.d("GPS", "GPS on status changed")

        when (status) {
            GpsStatus.GPS_EVENT_STARTED -> {

            }
            GpsStatus.GPS_EVENT_STOPPED -> {
                GPSon = false
            }
            GpsStatus.GPS_EVENT_FIRST_FIX -> {
                Log.d("GPS", "GPS First Fix")
                GPSon = true
            }
            GpsStatus.GPS_EVENT_SATELLITE_STATUS -> {

            }
        }

    }
}

В onCreate у меня есть код для API => 24, где я использую GnssStatusCallback.Но даже когда я запускаю этот код в API 28, он все равно запускает функцию onStatusChanged ().Вторая проблема заключается в том, что функция onStatusChanged () запускает и показывает сообщение журнала «GPS-статус изменен», но никогда не переключается на коммутатор и не запускает второе сообщение журнала «GPS First Fix».Это не работает на любом API.

Как я могу решить эту проблему?Как получить статус GPS, когда GpsStatus устарел.

Спасибо.

...