Skip to content

Simple sensor event listener plugin for flutter.

License

Notifications You must be signed in to change notification settings

Fueled/flutter_sensors

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flutter_sensors

Simple sensor event listener plugin for flutter(Android & iOS).

Installation

First add the plugin in your project. Copy the following line below dependencies in your pubspec.yaml file.

dependencies:
     ...
    flutter_sensors: ^1.0.1

Then you need to import the dependency.

import 'package:flutter_sensors/flutter_sensors.dart';

iOS configuration

You need to add the following key-value pair into your Info.plist file inside the ios/Runner folder in your project.

<key>NSMotionUsageDescription</key>
<string>A reason to get the permission</string>

Android configuration

You need to add the following permission in your AndroidManifest.xml to use the step counter.

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

How to use

You register a new listener for an specific sensor.

final stream = await SensorManager().sensorUpdates(
        sensorId: Sensors.ACCELEROMETER,
        interval: Sensors.SENSOR_DELAY_GAME,
      );
_accelSubscription = stream.listen((sensorEvent) {
        setState(() {
          _accelData = sensorEvent.data;
        });
      });

Also, you can check if an specific sensor is available.

bool accelerometerAvailable =
        await SensorManager().isSensorAvailable(Sensors.ACCELEROMETER);

Remember to cancel your StreamSubscriptions after you are done with the sensor updates.

_accelSubscription.cancel();

Android Only

You can give the ID of a sensor without using the Sensors class. Example: registering a listener for the TYPE_LIGHT sensor.

int TYPE_LIGHT = 5; // TYPE_LIGHT is equals to 5
// Checking if is available.
bool isAvailable = await SensorManager().isSensorAvailable(TYPE_LIGHT);
// Initialize a stream to receive the updates.
final stream = await SensorManager().sensorUpdates(sensorId: TYPE_LIGHT);
_lightSubscription = stream.listen((sensorEvent) {
        setState(() {
          _lightData = sensorEvent.data;
        });
      });
 // Cancel the stream after using it.
_lightSubscription.cancel();

You can get the rest of the IDs from here.

About

Simple sensor event listener plugin for flutter.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 41.3%
  • Dart 37.0%
  • Kotlin 16.3%
  • Ruby 4.5%
  • Objective-C 0.9%