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
| @Composable fun SensorView(context: Context) { val sensorManager = context.getSystemService<SensorManager>() var rotation by remember { mutableFloatStateOf(0f) } DisposableEffect(Unit) { val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) val listener = object : SensorEventListener { override fun onSensorChanged(event: SensorEvent?) { rotation = event?.values?.get(0) ?: 0f } override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {} } sensorManager.registerListener( listener, sensor, SensorManager.SENSOR_DELAY_UI ) onDispose { sensorManager.unregisterListener(listener) } } Text("Rotation: $rotation") }
|