flutter_activity_recognition
此外掛程式用於在 Android 和 iOS 平台上識別使用者活動。
此外掛程式用於在 Android 和 iOS 平台上識別使用者活動。
{"sdk":"flutter"}{"sdk":"flutter"}以下為英文專案原文快照,最新內容請造訪 GitHub。
This plugin is used to recognize user activity on Android and iOS platforms. To implement this plugin, Android used ActivityRecognitionClient and iOS used CMMotionActivityManager.
ActivityStream to listen activity in real time.To use this plugin, add flutter_activity_recognition as a dependency in your pubspec.yaml file. For example:
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.
Open the AndroidManifest.xml file and add the following permissions between the <manifest> and <application> tags.
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
Open the ios/Runner/Info.plist file and add the following permission inside the <dict> tag.
<key>NSMotionUsageDescription</key>
<string>Used to recognize user activity information.</string>
Future<bool> _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;
}
activityStream getter.StreamSubscription<Activity>? _activitySubscription;
Future<void> _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');
}
If you want to use this plugin in the background, use the flutter_foreground_task plugin.
Go here to learn about the models provided by this plugin.
Go here to migrate to the new version.
If you find any bugs or issues while using the plugin, please register an issues on GitHub. You can also contact us at <hwj930513@naver.com>.