Android 我想在用zxing库扫描qrcode时打开手电筒

Android 我想在用zxing库扫描qrcode时打开手电筒,android,Android,仅打开手电筒而不打开ScannerView如何修复它,我需要ScannerView中的手电筒图标&如果需要,手电筒是打开的。 public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler { private ZXingScannerView mScannerView; Result rawResult; Camera cam; @Overr

仅打开手电筒而不打开ScannerView如何修复它,我需要ScannerView中的手电筒图标&如果需要,手电筒是打开的。


public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
    private ZXingScannerView mScannerView;
    Result rawResult;
    Camera cam;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    mScannerView = new ZXingScannerView(this);   // Programmatically initialize the scanner view
    setContentView(mScannerView);
    mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
    mScannerView.startCamera();
    cam = Camera.open();
    Camera.Parameters p = cam.getParameters();
    p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cam.setParameters(p);
    cam.startPreview();
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.M){ CameraManager=(CameraManager)getSystemService(Context.CAMERA_服务); 字符串cameraId=null;//通常后置摄像头位于0位置。 试一试{ cameraId=camManager.getCameraIdList()[0]; camManager.setTorchMode(cameraId,false); //TODO打开闪光灯 mScannerView.setFlash(真); }捕获(CameraAccessE异常){ e、 printStackTrace(); } } mScannerView.setFlash(真);//打开闪光灯 mScannerView.setFlash(假);//打开闪光灯
您有什么问题吗?请编辑你的帖子并附上解释。你能添加你的XML代码和插件版本名吗?你的答案看起来简单而好
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                CameraManager camManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
                String cameraId = null; // Usually back camera is at 0 position.
                try {
                    cameraId = camManager.getCameraIdList()[0];
                    camManager.setTorchMode(cameraId, false);  

     // TODO  Turn ON  Flash Light On
                    mScannerView.setFlash(true);    
                } catch (CameraAccessException e) {
                    e.printStackTrace();
                }
            }


mScannerView.setFlash(true);     // Turn on Flash Light
mScannerView.setFlash(false);    // Turn  Flash Light