Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java led闪烁之间的机具等待时间_Java_Android_Timer_Led - Fatal编程技术网

Java led闪烁之间的机具等待时间

Java led闪烁之间的机具等待时间,java,android,timer,led,Java,Android,Timer,Led,我正在尝试创建一个应用程序,通过在android上使用我的手机闪光灯发送摩尔斯电码。 有了定时器,我可以按一定的间隔打开和关闭闪光灯,但用户无法取消操作。有没有实现此功能的方法?我应该使用什么类/函数来实现led打开/关闭之间的等待 提前感谢,, 塞德里克 这是我目前的代码,使闪存工作 public void sendSOS() { t=new Timer(); //kort kort kort t.schedule(new Shor

我正在尝试创建一个应用程序,通过在android上使用我的手机闪光灯发送摩尔斯电码。 有了定时器,我可以按一定的间隔打开和关闭闪光灯,但用户无法取消操作。有没有实现此功能的方法?我应该使用什么类/函数来实现led打开/关闭之间的等待

提前感谢,, 塞德里克

这是我目前的代码,使闪存工作

public void sendSOS()
    {


        t=new Timer();

        //kort kort kort
        t.schedule(new ShortFlash(),0);
        t.schedule(new ShortFlash(),700);
        t.schedule(new ShortFlash(),1400);

        //lang lang lang
        t.schedule(new LongFlash(),2400);
        t.schedule(new LongFlash(),3600);
        t.schedule(new LongFlash(),4800);

        //kort kort kort
        t.schedule(new ShortFlash(),6200);
        t.schedule(new ShortFlash(),6900);
        t.schedule(new ShortFlash(),7600);

    }


    class ShortFlash extends TimerTask
    {
        public void run()
        {
            cam=Camera.open();
            Camera.Parameters params = cam.getParameters();
            params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
            cam.setParameters(params);
            cam.startPreview();
            cam.autoFocus(new Camera.AutoFocusCallback() {
                public void onAutoFocus(boolean success, Camera camera) {
                }
            });

            android.os.SystemClock.sleep(500);
            cam.stopPreview();
            cam.release();
        }
    }

    class LongFlash extends TimerTask
    {
        public void run()
        {
            cam=Camera.open();
            Camera.Parameters params = cam.getParameters();
            params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
            cam.setParameters(params);
            cam.startPreview();
            cam.autoFocus(new Camera.AutoFocusCallback() {
                public void onAutoFocus(boolean success, Camera camera) {
                }
            });

            android.os.SystemClock.sleep(1000);
            cam.stopPreview();
            cam.release();
        }
    }

Thread.currentThread().sleep(毫秒);将导致线程休眠若干毫秒。@ChrisHinshaw这肯定会起作用,但这是使操作可取消和可暂停的最糟糕方法。请给我们一些代码,以便我们找到最适合您的实现的解决方案。此外,我们自己也不必这样想:在这种情况下,您处理puase并取消并调用Thread.interrupt()。这应该停止睡眠,继续。你可以看看这个,这可能会有帮助[摩尔斯电码问题][1][1]: