Flutter Accura Scan MICR

Note:-

Add flutter_accurascan_finger under dependencies in your pubspec.yaml file. Usage Import flutter library into file. import 'package:flutter_accurascan_finger/flutter_accurascan_finger.dart';

1.Setup Android

Add this permissions into Android’s AndroidManifest.xml file.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

Add it in your root build.gradle at the end of repositories.

allprojects {
   repositories {
       google()
       jcenter()
       maven {
           url 'https://jitpack.io'
           credentials { username 'jp_45kf9tvkijvd9c7cf34mehj1b6' }
       }    
    }
}

Add it in your app/build.gradle file.

   packagingOptions {
        pickFirst 'lib/arm64-v8a/libcrypto.so'
        pickFirst 'lib/arm64-v8a/libssl.so'

        pickFirst 'lib/armeabi-v7a/libcrypto.so'
        pickFirst 'lib/armeabi-v7a/libssl.so'

        pickFirst 'lib/x86/libcrypto.so'
        pickFirst 'lib/x86/libssl.so'

        pickFirst 'lib/x86_64/libcrypto.so'
        pickFirst 'lib/x86_64/libssl.so'

        pickFirst 'lib/arm64-v8a/libc++_shared.so'
        pickFirst 'lib/arm64-v8a/libopencv_java4.so'

        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        pickFirst 'lib/armeabi-v7a/libopencv_java4.so'

        pickFirst 'lib/x86/libc++_shared.so'
        pickFirst 'lib/x86/libopencv_java4.so'

        pickFirst 'lib/x86_64/libc++_shared.so'
        pickFirst 'lib/x86_64/libopencv_java4.so'
    }

2.Setup iOS

1.Install Git LFS using command install git-lfs

2.Run pod install

Add this permissions into iOS Info.plist file.

<key>NSCameraUsageDescription</key>
<string>App usage camera for scan documents.</string>

3.Setup Accura Scan licenses into your projects

Accura Scan has two license require for use full functionality of this library. Generate your own Accura license from here key.license

This license is compulsory for this library to work. it will get all setup of accura SDK.

For Android

Create "assets" folder under app/src/main and Add license file in to assets folder.
- key.license // for Accura Scan OCR

For iOS

Place the key.license in your project's Runner directory, and add the licenses to the target.

4.Get license configuration from SDK. It returns all active functionalities of your license.

Setting up License

  Future<void> getMetaData() async{
    try {
      await AccuraOcr.getMetaData().then((value) =>
          setupConfigData(json.decode(value)));
    }on PlatformException{}
    if (!mounted) return;
  }

Error: String

Success: JSON String Response = {

isValid: boolean,

isFinger: boolean

}

5.Method for Enrolling Finger.

Future<void>startEnroll()async {
 String handSelected = "left";
 if (rightHand) {
   handSelected = "right";
 }

 var config = [handSelected];
 try {
   await AccuraFinger.startFingerEnroll(config)
       .then((value) =>
   {
     setState(() {
       dynamic result = json.decode(value);

       var tempDict = result["template_data"];
       var enrollTemplate = tempDict.values.toList();
       print("RESULT:- $result");
     })
   }).onError((error, stackTrace) =>
   {
     setState(() {})
   });
 } on PlatformException {}
}

handSelected: String

value: left or right

Success: JSON Response {

image_data: JSONObjects?,

template_data: JSONObjects?

}

Error: String

5.Method for Verify Finger.

Future<void>startVerify()async {
 String handSelected = "left";
 if (rightHand) {
   handSelected = "right";
 }

 var config = [handSelected];
 try {
   await AccuraFinger.startFingerVerify(config)
       .then((value) =>
   {
     setState(() {
       dynamic result = json.decode(value);

       var tempDict = result["template_data"];
       var verifyTemplate = tempDict.values.toList();

       print("RESULT:- $result");

     })
   }).onError((error, stackTrace) =>
   {
     setState(() {})
   });
 } on PlatformException {}
}

handSelected: String

value: left or right

Success: JSON Response {

image_data: JSONObjects?,

template_data: JSONObjects?

}

Error: String

6.Method to get result

  Future<void>getResult()async {

    var config = [enrollTemplate,verifyTemplate];
    try {
      await AccuraFinger.getResult(config)
          .then((value) =>
      {
        setState(() {
          dynamic result = json.decode(value);

          print("RESULT:- $result");
        })
      }).onError((error, stackTrace) =>
      {
        setState(() {})
      });
    } on PlatformException {}
  }

enrollTemplate: String

value: enroll template_data

verifyTemplate: String

value: verify template_data

Success: JSON Response { isValid: String}

Contributing See the contributing guide to learn how to contribute to the repository and the development workflow.

License: MIT