@danyalwe/capacitor-sensors
v1.0.1
Published
Get access to every sensor present in the device!
Downloads
93
Maintainers
Readme
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 syncIf 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'
