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
145
points
253
downloads

Publisher

unverified uploader

Weekly Downloads

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

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on activity_rec_flutter

Packages that implement activity_rec_flutter