Camera Automatica

Ola,

Tem como colocar no seu codigo um text para a pessoa digitar um tempo em segundos, depois de definir esse tempo eu ativo a camera e ela fica tirando fotos com o tempo definido?

ex: iniciei o programa com 5 segundos, inicio a camera e ja tira uma foto, aguarda 5 segundos tira outra e assim vai ate eu apertar o botão de voltar para ver as imagens.

[code]o que eu tenho:

package com.example.timecam;

import java.io.File;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button tiraFoto = (Button) findViewById(R.id.btCapturar);
//EditText tempo = (EditText) findViewById(R.id.tempo);

//Double tempoSeg = Double.parseDouble(tempo.getText().toString());

tiraFoto.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivity(intent);

String arquivo = Environment.getExternalStorageState() + “/”

  • System.currentTimeMillis() + “.jpg”;

File file = new File(arquivo);

Uri outputFileUri = Uri.fromFile(file);

intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

}
});
}

} [/code]

Obrigado!

Estude um pouco o conceito de treds…
Ainda existe a possibilidade de utilizar um agendador de tarefas como o Quartz…

Avalie o que melhor lhe atendera…

Alguem tem mais alguma ideia?

Lembrando que começei agora a desenvolver

Se não me engano, mandar o comando de tirar foto tem que ser a partir da Thread principal, então para ter esse delay de 5s que você quer, indico criar um handler:

[code]private long mCaptureInterval = 5000; //ms
private Camera mCamera;
Handler mHandler;
private mRunnable = new Runnable(){

public void run(){

//chame metodo para tirar foto

if(mHandler!=null){
mHandler.postDelayed(mRunnable, mCaptureInterval) // acho que era essa a ordem… (runnable, interval);
}
}
};

private void startHandler(){
mHandler = new Handler();
mHandler.postDelayed(mRunnable, mCaptureInterval) // acho que era essa a ordem… (runnable, interval);
}

private void stopHandler(){
mHandler = null;
}[/code]

o Código para iniciar a camera, tirar foto, etc tem em vários tutoriais… google it :slight_smile:

Tentei de varia formas colocar esse codigo no meu, mais apresenta erros

Olha, nunca utilizei a captura de imagem por intent… mas creio que para o que você quer não funciona mesmo. Pelo que li, ela inicia uma aplicação de câmera, espera o usuário tira uma foto e retorna para sua aplicação (igual do whatsapp). Em suma, você só espera um resultado de outra aplicação, não podendo controla-la.

Para o que você quer, provavelmente terá implementar uma câmera para sua aplicação.