https://github.com/dev-hwang/flutter_activity_recognition
This plugin is used to recognize user activity on Android and iOS platforms.
https://github.com/dev-hwang/flutter_activity_recognition
activity android flutter ios recognition
Last synced: over 1 year ago
JSON representation
This plugin is used to recognize user activity on Android and iOS platforms.
- Host: GitHub
- URL: https://github.com/dev-hwang/flutter_activity_recognition
- Owner: Dev-hwang
- License: mit
- Created: 2021-04-23T08:21:49.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-06T03:25:40.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T05:43:58.106Z (over 1 year ago)
- Topics: activity, android, flutter, ios, recognition
- Language: Kotlin
- Homepage: https://pub.dev/packages/flutter_activity_recognition
- Size: 111 KB
- Stars: 12
- Watchers: 3
- Forks: 12
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
This plugin is used to recognize user activity on Android and iOS platforms. To implement this plugin, Android used `ActivityRecognitionClient` and iOS used `CMMotionActivityManager`.
[](https://pub.dev/packages/flutter_activity_recognition)
## Features
* Can request activity recognition permission.
* Can subscribe to `ActivityStream` to listen activity in real time.
## Getting started
To use this plugin, add `flutter_activity_recognition` as a [dependency in your pubspec.yaml file](https://flutter.io/platform-plugins/). For example:
```yaml
dependencies:
flutter_activity_recognition: ^4.0.0
```
After adding the `flutter_activity_recognition` plugin to the flutter project, we need to specify the platform-specific permissions to use for this plugin to work properly.
### :baby_chick: Android
Open the `AndroidManifest.xml` file and add the following permissions between the `` and `` tags.
```
```
### :baby_chick: iOS
Open the `ios/Runner/Info.plist` file and add the following permission inside the `` tag.
```
NSMotionUsageDescription
Used to recognize user activity information.
```
## How to use
1. Checks whether activity recognition permission is granted.
```dart
Future _checkAndRequestPermission() async {
ActivityPermission permission =
await FlutterActivityRecognition.instance.checkPermission();
if (permission == ActivityPermission.PERMANENTLY_DENIED) {
// permission has been permanently denied.
return false;
} else if (permission == ActivityPermission.DENIED) {
permission =
await FlutterActivityRecognition.instance.requestPermission();
if (permission != ActivityPermission.GRANTED) {
// permission is denied.
return false;
}
}
return true;
}
```
2. To listen activity in real time, use the `activityStream` getter.
```dart
StreamSubscription? _activitySubscription;
Future _subscribeActivityStream() async {
if (await _checkAndRequestPermission()) {
_activitySubscription = FlutterActivityRecognition.instance.activityStream
.handleError(_onError)
.listen(_onActivity);
}
}
void _onActivity(Activity activity) {
print('activity detected >> ${activity.toJson()}');
}
void _onError(dynamic error) {
print('error >> $error');
}
```
## Background Mode
If you want to use this plugin in the background, use the [`flutter_foreground_task`](https://pub.dev/packages/flutter_foreground_task) plugin.
## More Documentation
Go [here](./documentation/models_documentation.md) to learn about the `models` provided by this plugin.
Go [here](./documentation/migration_documentation.md) to `migrate` to the new version.
## Support
If you find any bugs or issues while using the plugin, please register an issues on [GitHub](https://github.com/Dev-hwang/flutter_activity_recognition/issues). You can also contact us at .