Code
Compose Sensors – Access sensor data using Jetpack Compose

Accessing sensor data of your Android devices just became quick and easy ⚡️
This library provides a convenience wrapper over the Sensor APIs for Android to be used with Jetpack Compose.
Demo ❤️
Usage 🚀
Install dependency 📲
build.gradle.kts (:module-name)
Kotlin dependencies {
...
implementation("com.mutualmobile:composesensors:x.y.z")
}
build.gradle (:module-name)
Groovy dependencies {
...
implementation 'com.mutualmobile:composesensors:x.y.z'
}
The library provides straightforward state methods for multiple sensors like Accelerometer, Gyroscope, etc (more mentioned below). Following is an example on how to get the current values from the Accelerometer
:
val accelerometerState = rememberAccelerometerSensorState()
Use it in an example:
val accelerometerState = rememberAccelerometerSensorState()
// Optional: You could also write: rememberAccelerometerSensorState(sensorDelay = SensorDelay.Fastest) for fetching sensor data faster
Text(
text = "Force X: ${accelerometerState.xForce}" +
"\nForce Y: ${accelerometerState.yForce}" +
"\nForce Z: ${accelerometerState.zForce}" +
"\nIs Available?: ${accelerometerState.isAvailable}"
)
Sensors Supported 📱
ComposeSensors plans to support the following Android sensors:
Sensor | Status | Composable |
---|---|---|
Accelerometer | ✅ | rememberAccelerometerSensorState() |
Magnetic Field | ✅ | rememberMagneticFieldSensorState() |
Gyroscope | ✅ | rememberGyroscopeSensorState() |
Light | ✅️ | rememberLightSensorState() |
Pressure | ✅️ | rememberPressureSensorState() |
Proximity | ✅️️ | rememberProximitySensorState() |
Gravity | ✅️ | rememberGravitySensorState() |
Linear Acceleration | ✅️ | rememberLinearAccelerationSensorState() |
Rotation Vector | ✅️️ | rememberRotationVectorSensorState() |
Relative Humidity | ✅️️ | rememberRelativeHumiditySensorState() |
Ambient Temperature | ✅️ | rememberAmbientTemperatureSensorState() |
Magnetic Field (Uncalibrated) | ✅️️ | rememberUncalibratedMagneticFieldSensorState() |
GameRotation Vector | ✅️ | rememberGameRotationVectorSensorState() |
Gyroscope (Uncalibrated) | ✅️ | rememberUncalibratedGyroscopeSensorState() |
Significant Motion | ✅ | rememberSignificantMotionSensorState(onMotionEvent = {}) |
Step Detector | ✅️ | rememberStepDetectorSensorState() |
Step Counter | ✅️ | rememberStepCounterSensorState() |
Geomagnetic Rotation Vector | ✅️️ | rememberGeomagneticRotationVectorSensorState() |
Heart Rate | ✅️ | rememberHeartRateSensorState() |
Pose6DOF | ✅ | rememberPose6DOFSensorState() |
Stationary Detect | ✅️ | rememberStationaryDetectSensorState() |
Motion Detect | ✅️ | rememberMotionDetectSensorState() |
Heart Beat | ✅ | rememberHeartBeatSensorState() |
Low Latency Off-Body Detect | ✅️ | rememberLowLatencyOffBodyDetectSensorState() |
Accelerometer (Uncalibrated) | ✅️ | rememberUncalibratedAccelerometerSensorState() |
Hinge Angle | ✅️ | rememberHingeAngleSensorState() |
Head Tracker | ✅️ | rememberHeadTrackerSensorState() |
Accelerometer Limited Axes | ✅️ | rememberLimitedAxesAccelerometerSensorState() |
Gyroscope Limited Axes | ✅️️ | rememberLimitedAxesGyroscopeSensorState() |
Accelerometer Limited Axes (Uncalibrated) | ✅ | rememberUncalibratedLimitedAxesAccelerometerSensorState() |
Gyroscope Limited Axes (Uncalibrated) | ✅ | rememberUncalibratedLimitedAxesGyroscopeSensorState() |
Heading | ✅ | rememberHeadingSensorState() |
