37 lines
1.1 KiB
Dart
37 lines
1.1 KiB
Dart
|
import 'package:barcode_scan2/barcode_scan2.dart';
|
||
|
|
||
|
class QRCodeBarCodeScanner {
|
||
|
static final QRCodeBarCodeScanner _instance = QRCodeBarCodeScanner();
|
||
|
static QRCodeBarCodeScanner get instance => _instance;
|
||
|
final _selectedCamera = -1;
|
||
|
final bool _useAutoFocus = true;
|
||
|
static final _possibleFormats = BarcodeFormat.values.toList()
|
||
|
..removeWhere((e) => e == BarcodeFormat.unknown);
|
||
|
ScanResult scanResult = ScanResult();
|
||
|
|
||
|
List<BarcodeFormat> selectedFormats = [..._possibleFormats];
|
||
|
|
||
|
Future<ScanResult> scanner() async {
|
||
|
ScanOptions options = ScanOptions(
|
||
|
strings: {
|
||
|
"cancel": "Back",
|
||
|
"flash_on": "Flash on",
|
||
|
"flash_off": "Flash off",
|
||
|
},
|
||
|
restrictFormat: selectedFormats,
|
||
|
useCamera: _selectedCamera,
|
||
|
// autoEnableFlash: _autoEnableFlash,
|
||
|
android: AndroidOptions(
|
||
|
// aspectTolerance: _aspectTolerance,
|
||
|
useAutoFocus: _useAutoFocus,
|
||
|
),
|
||
|
);
|
||
|
try {
|
||
|
scanResult = await BarcodeScanner.scan(options: options);
|
||
|
} on Error catch (e) {
|
||
|
throw (e.toString());
|
||
|
}
|
||
|
return scanResult;
|
||
|
}
|
||
|
}
|