activity_rec_flutter 3.3.2 copy "activity_rec_flutter: ^3.3.2" to clipboard
activity_rec_flutter: ^3.3.2 copied to clipboard

discontinued
PlatformAndroidiOS

This plugin is used to recognize user activity on Android and iOS platforms.

example/lib/main.dart

import 'dart:async';
import 'dart:developer' as dev;

import 'package:flutter/material.dart';
import 'package:activity_rec_flutter/activity_rec_flutter.dart';
import 'package:activity_rec_flutter/models/activity.dart';
import 'package:activity_rec_flutter/models/permission_request_result.dart';

void main() => runApp(ExampleApp());

class ExampleApp extends StatefulWidget {
  @override
  _ExampleAppState createState() => _ExampleAppState();
}

class _ExampleAppState extends State<ExampleApp> {
  final _activityStreamController = StreamController<Activity>();
  StreamSubscription<Activity>? _activityStreamSubscription;

  void _onActivityReceive(Activity activity) {
    dev.log('Activity Detected >> ${activity.toJson()}');
    _activityStreamController.sink.add(activity);
  }

  void _handleError(dynamic error) {
    dev.log('Catch Error >> $error');
  }

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance?.addPostFrameCallback((_) async {
      final activityRecognition = FlutterActivityRecognition.instance;

      // Check if the user has granted permission. If not, request permission.
      PermissionRequestResult reqResult;
      reqResult = await activityRecognition.checkPermission();
      if (reqResult == PermissionRequestResult.PERMANENTLY_DENIED) {
        dev.log('Permission is permanently denied.');
        return;
      } else if (reqResult == PermissionRequestResult.DENIED) {
        reqResult = await activityRecognition.requestPermission();
        if (reqResult != PermissionRequestResult.GRANTED) {
          dev.log('Permission is denied.');
          return;
        }
      }

      // Subscribe to the activity stream.
      _activityStreamSubscription =
          activityRecognition.activityStream.handleError(_handleError).listen(_onActivityReceive);
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: const Text('Flutter Activity Recognition'), centerTitle: true),
          body: _buildContentView()),
    );
  }

  @override
  void dispose() {
    _activityStreamController.close();
    _activityStreamSubscription?.cancel();
    super.dispose();
  }

  Widget _buildContentView() {
    return StreamBuilder<Activity>(
        stream: _activityStreamController.stream,
        builder: (context, snapshot) {
          final updatedDateTime = DateTime.now();
          final content = snapshot.data?.toJson().toString() ?? '';

          return ListView(
              physics: const BouncingScrollPhysics(),
              padding: const EdgeInsets.all(8.0),
              children: [Text('•\t\tActivity (updated: $updatedDateTime)'), SizedBox(height: 10.0), Text(content)]);
        });
  }
}
1
likes
120
pub points
56%
popularity

Publisher

unverified uploader

This plugin is used to recognize user activity on Android and iOS platforms.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on activity_rec_flutter