MateuszGrabarczyk

mysensor

Dec 8th, 2022
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.81 KB | None | 0 0
  1. package com.example.lab5
  2.  
  3. import android.content.Context
  4. import android.hardware.Sensor
  5. import android.hardware.SensorEvent
  6. import android.hardware.SensorEventListener
  7. import android.hardware.SensorManager
  8. import android.widget.TextView
  9.  
  10.  
  11. /* Przykład obsługi czujnika - żyroskop */
  12.  
  13. class MySensor(/*konstr. podst.*/val activity: MainActivity) :/*interf. sensora*/SensorEventListener {
  14.     val label:TextView //etykieta w ktorej pomiar bedzie wyswietlany
  15.         get() { // wlasny getter aby pobrac uchwyt do etykiety z fasady
  16.             return activity.findViewById<TextView>(R.id.label)
  17.         }
  18.  
  19.     //cialo konstruktora podstawowego
  20.     init {
  21.         //pobranie usługi zarządzającej sensorami
  22.         val sensorService = activity.getSystemService(Context.SENSOR_SERVICE) as SensorManager
  23.         //pobranie listy wybranych sensorów - tu żyroskopów
  24.         val sensorList = sensorService.getSensorList(Sensor.TYPE_GYROSCOPE)
  25.         //pobranie pierwszego z listy sensora
  26.         val thermometer = sensorList[0]
  27.         //rejestracja obiektu tej klasy jako odbiornika zdarzeń - pomiarów z sensora
  28.         sensorService.registerListener(this,thermometer,SensorManager.SENSOR_DELAY_NORMAL)
  29.     }
  30.  
  31.     //funkcja wywolywana za kazdym razem gdy przyjdzie nowy pomiar
  32.     override fun onSensorChanged(event: SensorEvent?) {
  33.         //wstawienie wartosci pomiaru do etykiety
  34.         label.text=event?.values?.get(0)?.toString()
  35.         //pobieram z wektora (tablicy) tylko jeden wymiar (w rad/s) dla przykładu
  36.         //proszę zwrócić uwagę na label.text - wykorzystuję domyślny setter oraz operatory ?.
  37.     }
  38.  
  39.     //funkcja wywolywana za kazdym razem gdy zmieni się dokładność - nie potrzebna w projekcie teraz
  40.     override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {
  41.  
  42.     }
  43. }
Add Comment
Please, Sign In to add comment