Skip to content

zAlweNy26/capacitor-sensors

Repository files navigation

Capacitor Plugin - Sensors

Get access to every sensor present in the device!

Supported Android version: 23+
Supported iOS version: Not supported
Supported Browsers: Chromium-based

Install

npm install @danyalwe/capacitor-sensors
npx cap sync

If you want to use the HEART_BEAT or HEART_RATE sensor, you need to request the BODY_SENSORS permission in your app:

<uses-permission android:name="android.permission.BODY_SENSORS" />

If you want to use the STEP_COUNTER or STEP_DETECTOR sensor, you need to request the ACTIVITY_RECOGNITION permission in your app:

<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />

Example

The following example demonstrates how to use the Sensors plugin to access the device's accelerometer:

import { Sensors } from '@danyalwe/capacitor-sensors'

// Initialize the specific sensor and obtain infos about it
const sensor = await Sensors.init({ type: 'ACCELEROMETER' })

// Start the sensor to begin receiving data
await Sensors.start({ type: 'ACCELEROMETER' })

// Add a listener to receive accelerometer data
Sensors.addListener('ACCELEROMETER', (data) => {
  console.log('Accelerometer data:', data)
})

// Stop the sensor
await Sensors.stop({ type: 'ACCELEROMETER' })

Todos

  • Add support for iOS

Supported methods

Name Android iOS Web
init
getAvailableSensors
start
stop
addListener
removeAllListeners
requestPermissions

Supported sensors

Sensors Android iOS Web
MOTION_DETECTOR
LINEAR_ACCELERATION
MAGNETOMETER
GRAVITY
GYROSCOPE
AMBIENT_LIGHT
ACCELEROMETER
ABSOLUTE_ORIENTATION
RELATIVE_ORIENTATION
TEMPERATURE
GAME_ROTATION_VECTOR
GEOMAGNETIC_ROTATION_VECTOR
HEART_BEAT
HEART_RATE
POSE_6DOF
PRESSURE
PROXIMITY
RELATIVE_HUMIDITY
ROTATION_VECTOR
SIGNIFICANT_MOTION
STATIONARY_DETECTOR
STEP_COUNTER
STEP_DETECTOR

API

The Sensors Plugin interface.

Interfaces

SensorOptions

Represents the options for a sensor.

Prop Type Description
type SensorType The type of sensor to use.
delay SensorDelay The delay between sensor readings.

SensorData

Represents the data returned by a sensor, including any additional information about the sensor.

Prop Type
infos SensorInfos

SensorInfos

Interface representing sensor information.

Prop Type Description
name string The name of the sensor.
vendor string The vendor of the sensor.
version number The version of the sensor.
type number The type of the sensor.
maxRange number The maximum range of the sensor in sensor units.
resolution number The resolution of the sensor in sensor units.
power number The power consumption of the sensor in milliamperes.
minDelay number The minimum delay between sensor readings in microseconds.
maxDelay number The maximum delay between sensor readings in microseconds.

PermissionStatus

Interface representing the permission status for various web sensors.

Prop Type
'accelerometer' PermissionState
'ambient-light-sensor' PermissionState
'gyroscope' PermissionState
'magnetometer' PermissionState

SensorResult

Represents the result of a sensor reading.

Prop Type Description
accuracy number The accuracy of the sensor reading, if available.
timestamp number The timestamp of the sensor reading, if available.
values {} The values obtained from the sensor reading.

PluginListenerHandle

Prop Type
remove () => any

Type Aliases

SensorType

(typeof SensorTypes)[number]

SensorDelay

(typeof SensorDelays)[number]

PermissionState

'prompt' | 'prompt-with-rationale' | 'granted' | 'denied'