Android 手电筒应用中的闪烁模式

Flashing mode in Android Flashlight app

如您所见,我正在为 android 制作手电筒,它有 2 种闪烁模式(第一种会使 LED 不间断闪烁,第二种会使闪烁之间暂停 0.5 秒),但使用我的代码它不起作用。这是我的代码:

private void turnOnFlash() {
    if (!isFlashOn) {
        if (camera == null || params == null) {
            return;
        }

        params = camera.getParameters();

        switch(mode) {
            case 1:
                params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                break;
            case 2:
                timer = new CountDownTimer(1000, 500) {
                    @Override
                    public void onTick(long millisUntilFinished) {
                        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    }

                    @Override
                    public void onFinish() {
                        params.setFlashMode(Parameters.FLASH_MODE_OFF);
                    }
                };
                break;
        }

        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;

        playSound();
        toggleButtonImage();
    }
}

这里是检测模式的方法

tvMode.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            switch(mode) {
                case 1:
                    mode = 2;
                    tvMode.setText("2");
                    if(isFlashOn) {
                        turnOffFlash();
                        turnOnFlash();
                    }
                    break;
                case 2:
                    mode = 1;
                    tvMode.setText("1");
                    if(isFlashOn) {
                        turnOffFlash();
                        turnOnFlash();
                    }
                    break;
            }
        }
    });
}

问题已解决。我忘了把 .start(); 放在 CountDownTimer 的末尾。