====== std.android.sensor ====== ASensorManager-Bindings für Gerätesensoren: Accelerometer, Gyroscope, Magnetometer, Umgebungslicht und weitere. Sensorwerte werden über einen ALooper-Event-Queue empfangen. → [[lyx_-_programmiersprache:units:android|std.android]] · [[lyx_-_programmiersprache:units:android:looper|std.android.looper]] ---- ===== Sensor-Typ-Konstanten ===== ^ Konstante ^ Sensor ^ | ''ASENSOR_TYPE_ACCELEROMETER'' | Beschleunigungssensor (m/s²) | | ''ASENSOR_TYPE_GYROSCOPE'' | Kreiselinstrument (rad/s) | | ''ASENSOR_TYPE_MAGNETIC_FIELD'' | Magnetometer (μT) | | ''ASENSOR_TYPE_LIGHT'' | Umgebungslicht (lux) | | ''ASENSOR_TYPE_PROXIMITY'' | Näherungssensor (cm) | | ''ASENSOR_TYPE_GRAVITY'' | Schwerkraft-Vektor (m/s²) | | ''ASENSOR_TYPE_LINEAR_ACCELERATION'' | Lineare Beschleunigung ohne Schwerkraft | | ''ASENSOR_TYPE_ROTATION_VECTOR'' | Rotationsvektor | | ''ASENSOR_TYPE_PRESSURE'' | Luftdruck (hPa) | | ''ASENSOR_TYPE_TEMPERATURE'' | Temperatur (°C) | ---- ===== Verwendung ===== import std.android.sensor; // Sensor-Manager und Accelerometer holen var mgr: *ASensorManager := ASensorManagerGetInstance(); var accel: *ASensor := ASensorManagerGetDefaultSensor(mgr, ASENSOR_TYPE_ACCELEROMETER); // Event-Queue erstellen und an Looper binden var queue: *ASensorEventQueue := ASensorManagerCreateEventQueue(mgr, looper, LOOPER_ID_USER, nil, nil); ASensorEventQueueEnableSensor(queue, accel); ASensorEventQueueSetEventRate(queue, accel, 16667); // 60 Hz in Mikrosekunden // In der Event-Loop: Werte lesen var event: ASensorEvent; while (ASensorEventQueueGetEvents(queue, &event, 1) > 0) { var x: f64 := event.acceleration.x; var y: f64 := event.acceleration.y; var z: f64 := event.acceleration.z; ProcessAccel(x, y, z); } ---- ===== Funktionen ===== ^ Signatur ^ Sichtbarkeit ^ Beschreibung ^ | ''ASensorManagerGetInstance(): *ASensorManager'' | pub | Gibt globale Sensor-Manager-Instanz zurück | | ''ASensorManagerGetDefaultSensor(mgr: *ASensorManager, type: int64): *ASensor'' | pub | Gibt Standard-Sensor des angegebenen Typs zurück | | ''ASensorManagerCreateEventQueue(mgr: *ASensorManager, looper: ALooper, ident: int64, callback: pchar, data: pchar): *ASensorEventQueue'' | pub | Erstellt Event-Queue für Sensor-Events | | ''ASensorManagerDestroyEventQueue(mgr: *ASensorManager, queue: *ASensorEventQueue): int64'' | pub | Zerstört Event-Queue | | ''ASensorEventQueueEnableSensor(queue: *ASensorEventQueue, sensor: *ASensor): int64'' | pub | Aktiviert Sensor in der Queue | | ''ASensorEventQueueDisableSensor(queue: *ASensorEventQueue, sensor: *ASensor): int64'' | pub | Deaktiviert Sensor | | ''ASensorEventQueueSetEventRate(queue: *ASensorEventQueue, sensor: *ASensor, usec: int64): int64'' | pub | Setzt Abfraterate in Mikrosekunden | | ''ASensorEventQueueGetEvents(queue: *ASensorEventQueue, events: *ASensorEvent, count: int64): int64'' | pub | Liest bis zu count Events; gibt Anzahl zurück | | ''ASensorGetName(sensor: *ASensor): pchar'' | pub | Gibt Sensor-Name zurück | | ''ASensorGetResolution(sensor: *ASensor): f64'' | pub | Gibt Auflösung des Sensors zurück | Letzte Aktualisierung: 2026-05-22