MainActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
package com.example.myapplication import android.hardware.Sensor import android.hardware.SensorEvent import android.hardware.SensorEventListener import android.hardware.SensorManager import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.tooling.preview.Preview class MainActivity : ComponentActivity() { private lateinit var sensorManager: SensorManager override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager setContent { GyroValues(sensorManager) } } } @Composable fun GyroValues(sensorManager: SensorManager) { val gyroValues = remember { mutableStateOf("") } LaunchedEffect(sensorManager) { val gyroscopeSensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) if (gyroscopeSensor != null) { sensorManager.registerListener(object : SensorEventListener { override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {} override fun onSensorChanged(event: SensorEvent?) { event?.let { val x = it.values[0] val y = it.values[1] val z = it.values[2] gyroValues.value = "Valor X: $x\nValor Y: $y\nValor Z: $z" } } }, gyroscopeSensor, SensorManager.SENSOR_DELAY_NORMAL) } else { gyroValues.value = "Giroscopio no disponible en este dispositivo." } } Column { Text(text = gyroValues.value) } } |
