custom_activity_recognition

Activity recognition plugin for Android (Activity Recognition Transition API) and iOS (CoreMotion)

Android iOS
Support SDK 21+ 12.0+

Getting started

To use this plugin, add flutter_activity_recognition as a dependency in your pubspec.yaml file. Show video

For example:

  dependencies:
    custom_activity_recognition: ^0.0.11
  • Android Open the AndroidManifest.xml file and add the following permissions between the
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />

Allow to enable or disable the hybrid model (only for Android).

  // CustomActivityRecognition.instance.startTracking() 
  // useTransitionRecognition = true, useActivityRecognition = false

  CustomActivityRecognition.instance.startTracking(
    showNotification: true,
    useTransitionRecognition: false,
    useActivityRecognition: true,
    detectionIntervalMillis: 10000,
    confidenceThreshold: 50,
  );
  • iOS Open the ios/Runner/Info.plist file and add the following permission inside the
	<key>NSMotionUsageDescription</key>
    <string>Detects human activity</string>
    <key>UIBackgroundModes</key>
    <array>
        <string>fetch</string>
    </array>

ActivityData

class ActivityData {
  final DateTime timestamp;
  final String activity;    
}

Types of activities

Android:

  • IN_VEHICLE
  • ON_BICYCLE
  • RUNNING
  • ON_FOOT
  • WALKING
  • STILL
  • UNKNOWN

iOS:

  • IN_VEHICLE
  • ON_BICYCLE
  • RUNNING
  • WALKING
  • STILL
  • UNKNOWN

Support

If you find any bugs or issues while using the plugin, please register an issues on GitHub.