Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bradmartin/nativescript-android-sensors
NativeScript plugin for using Android device sensors on background thread.
https://github.com/bradmartin/nativescript-android-sensors
accelerometer android data nativescript sensor
Last synced: 2 months ago
JSON representation
NativeScript plugin for using Android device sensors on background thread.
- Host: GitHub
- URL: https://github.com/bradmartin/nativescript-android-sensors
- Owner: bradmartin
- License: apache-2.0
- Created: 2019-04-11T20:17:21.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-27T20:55:53.000Z (over 2 years ago)
- Last Synced: 2024-10-17T07:29:31.753Z (2 months ago)
- Topics: accelerometer, android, data, nativescript, sensor
- Language: TypeScript
- Homepage:
- Size: 1.97 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NativeScript plugin for using android device sensors that run on a background thread.
## Installation
NativeScript 7+:
```
ns plugin add nativescript-android-sensors
```NativeScript version lower than 7:
```bash
tns plugin add [email protected]
```Android Sensors: https://developer.android.com/reference/android/hardware/Sensor.html
## Usage
```typescript
import { AndroidSensors, AndroidSensorListener, SensorDelay } from 'nativescript-android-sensors';const sensors = new AndroidSensors();
const accelerometerSensor: android.hardware.Sensor;
const gyroScope: android.hardware.Sensor;const sensorListener = new AndroidSensorListener({
onAccuracyChanged: (
sensor: android.hardware.Sensor,
accuracy: number
) => {
console.log('accuracy', accuracy);
},
onSensorChanged: (result: string) => {
// result is being returned as a string currently
const parsedData = JSON.parse(result);
const rawSensorData = parsedData.data;
const sensor = parsedData.sensor;
const time = parsedData.time;
}
});this.sensors.setListener(sensorListener);
someFunction() {
accelerometerSensor = sensors.startSensor(android.hardware.Sensor.TYPE_LINEAR_ACCELERATION, SensorDelay.FASTEST);// here we are using the android const 4 which is for the TYPE_GYROSCOPE sensor
// https://developer.android.com/reference/android/hardware/Sensor.html#TYPE_GYROSCOPE
// we are passing the third argument to `startSensor` which is for maxReportLatency, if the sensor is able to support FIFO this will register the sensor with the reporting latency value, if not, the sensor registers on the background thread as normal
const gyroScope = sensors.startSensor(4, SensorDelay.NORMAL, 4000000);// maybe you wanna use a timeout and stop it after 8 seconds
setTimeout(() => {
sensors.stopSensor(gyroScope);
}, 8000)
}functionToStopTheSensorData() {
sensors.stopSensor(accelerometerSensor);
}
```## API
#### Constructor
AndroidSensors (liteData: boolean = false)
The boolean argument for `liteData` changes the JSON returned from the sensor event changes. This is helpful when you are storing large amounts of dataset by reducing the redundant data from the sensor changed event.
```typescript
import {
AndroidSensors,
AndroidSensorListener,
SensorDelay,
} from 'nativescript-android-sensors';const sensors = new AndroidSensors(true);
```#### Methods
- `setListener(listener: AndroidSensorListener): void`
- Set the event listener which returns data when the sensors change.
- `startSensor(sensor: android.hardware.Sensor, delay: SensorDelay, maxReportingDelay?: number): android.hardware.Sensor`
- Registers the sensor with the provided reporting delay. Returns the instance of the sensor so it can be passed to the `stopSensor(sensor)` method to unregister when finished with it. The third argument to `startSensor` is for maxReportLatency, if the sensor is able to support FIFO this will register the sensor with the reporting latency value, if not, the sensor registers on the background thread as normal
- `stopSensor(sensor: android.hardware.Sensor): void`
- Unregisters the sensor.
- `getDeviceSensors(): android.hardware.Sensor[]`
- Returns an array of the devices sensors.
- `flush(): boolean`
- Will flush event data from the listener. Returns true if successful in flushing.