Connect with us

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 ❤️

Screen Recording 2023-04-03 at 1 00 08 PM

Usage 🚀

Install dependency 📲

Kotlin build.gradle.kts (:module-name)

dependencies {
    ...
    implementation("com.mutualmobile:composesensors:x.y.z")
}

Groovy build.gradle (:module-name)

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()
Compose Sensors on GitHub: https://github.com/mutualmobile/ComposeSensors
Platform: Android
⭐️: 111
Advertisement

Trending