Как сохранить показания датчика Sensor.TYPE_ORIENTATION по нажатию кнопки?

Не так давно стал изучать Kotlin и Android, поэтому полно вопросов.

Нужно реализовать следующее: 1. Сохранение по нажатию кнопки положение смартфона относительно оси Y 2. При изменении положения и следующему нажатию кнопки будет сохраняться положение №2 и вычисляться разница в градусах (для измерения угла).

Проблема в том, что величина динамическая и "выхватить" данные в момент нажатия кнопки не могу (не хватает знаний). Помогите, не могу найти ответ уже две недели.

Код следующий:

 override fun onResume() {
        super.onResume()
        manager?.registerListener(this,manager?.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),SensorManager.SENSOR_DELAY_GAME)
        /* или TYPE_ROTATION_VECTOR или TYPE_ORIENTATION как в старом компасе*/

    }

    override fun onPause() {
        super.onPause()
        manager?.unregisterListener(this)
    }

    override fun onAccuracyChanged(p0: Sensor?, p1: Int) {

    }

    fun onClickBack (view: View) {
        finish()
    }



    override fun onSensorChanged(p0: SensorEvent?) {
        val degree:Int = p0?.values?.get(0)?.toInt()!!
        val mm = (Math.toDegrees(degree.toDouble())+360)%360
        binding.tvResult.text = mm.toString()
        Log.d("TAG", "rotateY: " + degree)

    }



   fun onClickSave (view: View) {
       
???


    }


Ответы (0 шт):