Как автоматически делать снимки с помощью приложения для Android каждые n секунд - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать приложение для Android, которое будет снимать фотографии каждые 5 секунд.В настоящее время техника, которую я использую, использует приложение камеры телефона для захвата фотографии.Требуется, чтобы пользователь сделал снимок, а затем нажал ОК, и только после этого элемент управления возвращается обратно в приложение для Android.Я обнаружил, что некоторые коды делают то же самое без взаимодействия с человеком, но, поскольку я новичок в Android, я не могу понять их коды, потому что большинство из них неполные и разделены на несколько видов деятельности.Можно ли это сделать, используя только одно упражнение?

РЕДАКТИРОВАТЬ: вышеуказанные коды можно найти здесь

1 Ответ

0 голосов
/ 06 марта 2019

Я предлагаю вам использовать эту библиотеку (здесь документация ) вместо официального Camera Api Android, который может быть очень сложно использовать для начинающих

Тогда ваш код может быть таким

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);

Не забудьте управлять жизненным циклом обработчика

...