sprintliveness 0.1.1 copy "sprintliveness: ^0.1.1" to clipboard
sprintliveness: ^0.1.1 copied to clipboard

A Flutter plugin for face liveness detection. Supports real-time face detection, randomized challenges (smile, blink, head rotation), and works on Android, iOS, Web, and Desktop.

SprintLiveness #

A Flutter plugin for face liveness detection that fully supports Android and iOS platforms, with WebView support for other platforms.

Features #

  • Real-time Face Detection: Uses ML Kit on Android and native Vision Framework on iOS.
  • Liveness Challenges: Randomized actions (Smile, Blink, Turn Left/Right, Tilt Up/Down) to ensure the user is live.
  • Cross-platform: Support for Android and iOS, with a fallback WebView implementation for Web and Desktop.
  • Easy Integration: Simple API to start liveness checks and get results.
  • Customizable UI: Built-in UI with progress indicators and real-time instructions.

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  sprintliveness: ^0.1.0

Then run:

flutter pub get

Usage #

First, import the package:

import 'package:sprintliveness/sprintliveness.dart';
import 'package:sprintliveness/model/liveness_response.dart';

Basic Usage #

final _sprintlivenessPlugin = Sprintliveness();

Future<void> _startLivenessCheck(BuildContext context) async {
  try {
    final LivenessResult result = await _sprintlivenessPlugin.startLivenessCheck(context);

    if (result.isSuccess) {
      // Liveness check was successful.
      // The `result.image` variable holds the Base64 encoded image string.
      print('Liveness check passed: ${result.image}');
    } else {
      // Liveness check failed.
      final exception = result.exception!;
      print('Liveness check failed: ${exception.message} (${exception.code})');
    }
  } catch (e) {
    print('An error occurred: $e');
  }
}

Platform Requirements #

Android #

  • Minimum SDK: 21 (Android 5.0)
  • Camera permission required.
  • Google Play Services (automatically handled).

Add these permissions to your android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA" />

iOS #

  • Minimum iOS version: 15.5
  • Camera permission required.

Add these permissions to your ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>This app needs camera access for face liveness detection</string>

API Reference #

Sprintliveness #

The main class to interact with the plugin.

  • startLivenessCheck(BuildContext context): Opens the liveness detection UI and returns a LivenessResult.

LivenessResult #

The result object returned after a liveness check.

  • isSuccess: Boolean indicating if the check passed.
  • image: Base64 encoded string of the captured face image (on success).
  • exception: LivenessException containing error details (on failure).

LivenessErrorCode #

  • userCancelled: User closed the screen manually.
  • challengeTimedOut: User took too long to complete an action.
  • cameraPermissionDenied: Camera access was not granted.
  • captureError: Failed to capture the final image.
  • lowLight: Environment is too dark.

License #

This project is licensed under the MIT License.

Support #

For support and questions, please visit our homepage.

0
likes
150
points
170
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for face liveness detection. Supports real-time face detection, randomized challenges (smile, blink, head rotation), and works on Android, iOS, Web, and Desktop.

Homepage

License

MIT (license)

Dependencies

camera, flutter, flutter_inappwebview, flutter_web_plugins, google_mlkit_face_detection, permission_handler, plugin_platform_interface, vector_math, web

More

Packages that depend on sprintliveness

Packages that implement sprintliveness