如何每隔n秒使用android应用自动捕获照片

时间:2019-03-05 21:39:59

标签: android android-activity android-camera

我正在尝试制作一个每5秒捕获一次照片的android应用。目前,我正在使用的技术使用手机的相机应用程序来捕获照片。它要求用户拍摄照片,然后按确定,然后控件返回到android应用。我发现有些代码无需人工干预即可执行相同操作,但是由于我是android的新手,所以我无法理解它们的代码,因为其中大多数代码都不完整,并且分为多个活动。可以仅使用一项活动吗?

编辑: 上面提到的代码here

1 个答案:

答案 0 :(得分:0)

我建议您使用此library(在此处为documentation),而不要使用Android的官方Camera Api,这对于初学者来说可能真的很棘手

然后您的代码可能是这样

private final Handler handler = new Handler(); //This should be declared before OnCreate
private Runnable photoRunnable; //This also

CameraView camera = findViewById(R.id.camera);

camera.addCameraListener(new CameraListener() {

    public void onPictureTaken(PictureResult result) {
        //Handle result here!
    }

});


photoRunnable = new Runnable() {

            @Override
            public void run() {
                try {
                    camera.takePicture(); //The result will be in onPictureTaken
                }
                catch (Exception e) {
                    e.printStackTrace();
                    //Handle Exception!
                }
                finally{
                    //also call the same runnable to call it at regular interval
                    handler.postDelayed(this, 10*1000); //10*1000 is your interval (in this case 10 seconds)
                }
            }
        };

        //runnable must be execute once
        handler.post(photoRunnable);

记住要管理处理程序的生命周期