barcode_scan 3.0.0-dev.1 copy "barcode_scan: ^3.0.0-dev.1" to clipboard
barcode_scan: ^3.0.0-dev.1 copied to clipboard

discontinued
outdated

A flutter plugin for scanning 2D barcodes and QRCodes via camera.

GitHub license GitHub stars Pub GitHub forks

Barcode Scanner #

A flutter plugin for scanning 2D barcodes and QR codes.

This provides a simple wrapper for two commonly used iOS and Android libraries:

iOS: https://github.com/mikebuss/MTBBarcodeScanner

Android: https://github.com/dm77/barcodescanner

Features #

  • ✅ Scan 2D barcodes
  • ✅ Scan QR codes
  • ✅ Control the flash while scanning
  • ✅ Permission handling

Getting Started #

Android #

For Android, you must do the following before you can use the plugin:

  • Add the camera permission to your AndroidManifest.xml

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

  • This plugin is written in Kotlin. Therefore, you need to add Kotlin support to your project. See installing the Kotlin plugin.

Edit your project-level build.gradle file to look like this:

buildscript {
    ext.kotlin_version = '1.3.61'
    // ...
    dependencies {
        // ...
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
// ...

Edit your app-level build.gradle file to look like this:

apply plugin: 'kotlin-android'
// ...
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    // ...
}

Now you can depend on the barcode_scan plugin in your pubspec.yaml file:

dependencies:
    # ...
    barcode_scan: any

Click "Packages get" in Android Studio or run flutter packages get in your project folder.

iOS #

To use on iOS, you must add the the camera usage description to your Info.plist

<dict>
    <!-- ... -->
    <key>NSCameraUsageDescription</key>
    <string>Camera permission is required for barcode scanning.</string>
    <!-- ... -->
</dict>

Usage #


import 'package:barcode_scan/barcode_scan.dart';

void main() async {
  var result = await BarcodeScanner.scan();
  
  print(result.type); // The result type (barcode, cancelled, failed)
  print(result.rawContent); // The barcode content
  print(result.format); // The barcode format (as enum)
  print(result.formatNote); // If a unknown format was scanned this field contains a note
}

Advanced usage #

You can pass options to the scan method:


import 'package:barcode_scan/barcode_scan.dart';

void main() async {
  
  var options = ScanOptions(
    // set the options
  );

  var result = await BarcodeScanner.scan(options: options);
  
  // ...
}

Supported options #

Option Type Description Supported by
strings.cancel String The cancel button text on iOS iOS only
strings.flash_on String The flash on button text iOS + Android
strings.flash_off String The flash off button text iOS + Android
restrictFormat BarcodeFormat[] Restrict the formats which are recognized iOS + Android
useCamera int The index of the camera which is used for scanning (See BarcodeScanner.numberOfCameras) iOS + Android
autoEnableFlash bool Enable the flash when start scanning iOS + Android
android.aspectTolerance double Enable the flash when start scanning Android only
android.useAutoFocus bool Enable the flash when start scanning Android only

Development setup #

Setup protobuf #

Mac:

$ brew install protobuf
$ brew install swift-protobuf

Windows / Linux: https://github.com/protocolbuffers/protobuf#protocol-compiler-installation

Activate the protobuf dart plugin: $ pub global activate protoc_plugin

Install theProtobuf Support plugin for IDEA / Android Studio or vscode-proto3 for VS Code

If you changed the protos.proto you've to execute the ./generate_proto.sh to update the dart / swift sources

Common problems #

Android "Could not find org.jetbrains.kotlin:kotlin-stdlib-jre..." #

Change org.jetbrains.kotlin:kotlin-stdlib-jre to org.jetbrains.kotlin:kotlin-stdlib-jdk (StackOverflow)

304
likes
0
pub points
93%
popularity

Publisher

verified publishermintware.de

A flutter plugin for scanning 2D barcodes and QRCodes via camera.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, protobuf

More

Packages that depend on barcode_scan