Android Studio 如何在抖动中扫描条形码?

y3bcpkx1  于 2023-08-07  发布在  Android
关注(0)|答案(2)|浏览(137)

条形码扫描仪出了点问题。谁来帮帮忙
我不知道这是不是正确的方法,但这是我给按钮的代码。

Row(
        children:
        [const Padding(padding: EdgeInsets.only(right: 10)),
          const Text('Barcode',style:
          TextStyle(fontSize: 20,
              fontWeight: FontWeight.bold,
              color: Colors.deepOrange),
          ),
      const Padding(padding: EdgeInsets.only(right: 100)),
          IconButton(
            icon: const Icon(Icons.qr_code),
            onPressed: () {
              scanBarcode();
            },
          ),
          const Text('Scan Code',style:
          TextStyle(fontSize: 15,fontWeight: FontWeight.bold,),),
        ],
      ),

字符串

8ehkhllq

8ehkhllq1#

在终端类型中:“flutter pub add flutter_barcode_scanner”并点击回车。
然后将这些代码添加到build方法之外:

Future<void> scanBarcodeNormal() async {
String barcodeScanRes;

// Platform messages may fail, so we use a try/catch PlatformException.
try {
  barcodeScanRes = await FlutterBarcodeScanner.scanBarcode(
      '#ff6666', 'Cancel', true, ScanMode.BARCODE);
  print(barcodeScanRes);
} on PlatformException {
  barcodeScanRes = 'Failed to get platform version.';
}

// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;

setState(() {
  _scanBarcode = barcodeScanRes;
});}

字符串
然后执行任意按钮以启动扫描仪:

IconButton(
                icon: Icon(
                  Icons.qr_code_2,
                  color: Colors.black,
                  size: 40,
                ),
                onPressed: () => scanBarcodeNormal(),
              ),


你可以走了。

b91juud3

b91juud32#

要在Flutter中扫描条形码,您可以使用barcode_scan包,它提供了一种简单方便的方式将条形码扫描功能集成到Flutter应用程序中。以下是如何使用此软件包实现条形码扫描:
将barcode_scan包添加到pubspec.yaml文件中:

dependencies:
  barcode_scan: ^2.0.0

字符串
在Dart文件中导入必要的包: dart

import 'package:barcode_scan/barcode_scan.dart';
import 'package:flutter/services.dart';


在以下方法中实现条形码扫描功能:dart复制代码

Future<void> scanBarcode() async {
  try {
    ScanResult result = await BarcodeScanner.scan();
    String barcode = result.rawContent;
    
    // Handle the scanned barcode
    print('Scanned barcode: $barcode');
  } on PlatformException catch (e) {
    if (e.code == BarcodeScanner.cameraAccessDenied) {
      // Handle camera permission denied error
      print('Camera permission denied');
    } else {
      // Handle other platform exceptions
      print('Error: ${e.message}');
    }
  } catch (e) {
    // Handle other exceptions
    print('Error: $e');
  }
}


通过调用scanBarcode方法触发条形码扫描过程: dart

scanBarcode();


当您调用scanBarcode时,它将打开设备的摄像头以扫描条形码。扫描条形码后,结果将作为ScanResult对象返回,其中包含条形码的原始内容。然后,您可以根据需要处理扫描的条形码。
确保通过使用try-catch块和处理特定的异常来处理异常和错误情况,例如相机权限拒绝。
注:barcode_scan软件包支持各种条形码格式,包括QR码、UPC码、EAN码等。

相关问题