【问题标题】:Android start flash in zxing libraryAndroid在zxing库中启动flash
【发布时间】:2026-01-21 13:20:05
【问题描述】:

我使用 zxing 库制作了一个用于条形码扫描的 android 应用程序。当我点击按钮时条形码阅读器启动,这是代码:

//scan
    mScanBtn = (Button)findViewById(R.id.scan);
    mScanBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {

                Intent intent = new Intent(
                        "com.google.zxing.client.android.SCAN");
                intent.setPackage("com.app.myapp");
                intent.putExtra("SCAN_MODE", "ONE_D_MODE");
                startActivityForResult(intent, 0);

            } catch (Exception e) {

                e.printStackTrace();

            }
        }
    });

此代码工作正常,条码扫描器启动。但我也想在条形码阅读器启动时启动 LED 手电筒(如果存在)。 zxing库启动时有办法启动手电筒吗?

【问题讨论】:

    标签: android zxing flashlight


    【解决方案1】:

    不,您不能在启动应用程序时强行打开手电筒。这个想法是用户处于控制它是否打开的最佳位置。我不希望应用在错误的情况下打开强光。

    【讨论】:

    • 我的意思是“当您从您的应用程序启动 Barcode Scanner 时,开始扫描”
    • 没有闪光灯,您无法读取条形码,因为太暗。你不会是一个工作的应用程序?
    • 如果天黑了,应该开灯来读取条码。如果它不是黑暗的,它不应该打开。你不知道是不是太黑了;用户这样做。所以应用程序让用户打开灯,而不是调用应用程序。不明白你的结束问题。
    【解决方案2】:
     Camera camera  =Camera.open();
     Camera.Parameters p;
     p = camera.getParameters();
     p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
     camera.setParameters(p);
    
     CameraConfigurationUtils.setTorch(p,true);
    

    使用这个你可以在 android studio 集成依赖库上的 torch.

    【讨论】:

    • 谢谢。 import android.hardware.Camera,它已被弃用。