Pergunta

Então, estou tentando iniciar a atividade da câmera usando o seguinte código:

//In public void captureImage()
...
Intent cameraIntent = new Intent(MediaStore.ACTION_CAPTURE_IMAGE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                      Uri.fromFile(new File("/sdcard/image.jpg")));
startActivityForResult(cameraIntent, REQUEST_CAMERA);

E então para lidar com o resultado:

//In onActivityResult()
...
case REQUEST_CAMERA:
  Intent intent = new Intent (CurrentScreen.this, NextScreen.this);
  intent.putExtra(data);
  startActivity(intent);
  CurrentScreen.this.finish();
...

Onde eu uso intent.putExtra(data) Para anexar o pequeno bitmap à intenção e usá -lo como uma miniatura na próxima atividade, e o arquivo de tamanho completo é supostamente salvo como /sdcard/image.jpg.

Esse é o comportamento esperado (de acordo com a documentação), ter um pequeno bitmap para uma miniatura e um grande arquivo salvo. No entanto, ao testá -lo em um G1 e um Eris, tenho visto algum comportamento estranho.

No G1:

  • Embora o código de resultado mostre resultado_ok, os dados de intenção retornados ao manipulador de resultado são nulos.
  • Além disso, extra_output parece ser completamente ignorado, não tenho idéia de onde está salvando a imagem.

No Eris:

  • Os dados da intenção voltam ok
  • Extra_output também é ignorado, mas está salvando as imagens na loja de mídia regular em /sdcard/dcim/100media

Então, minha pergunta é a seguinte: existe alguma maneira de obter um comportamento consistente para o que estou tentando fazer usando a atividade padrão da câmera? Eu poderia escrever uma atividade personalizada para tentar fazê -la funcionar da maneira que quero, mas prefiro evitar essa rota.

Foi útil?

Solução

Não tenho respostas para sua pergunta, pois sou novo no mundo do desenvolvimento Java/Android. Mas estou tentando algo semelhante ao que você está fazendo, exceto que quero simplesmente tirar a foto e anexá -la a uma mensagem de e -mail.

Implementei parte do seu exemplo e pude verificar se a câmera criou o arquivo que especifiquei e que, se eu usar o mesmo nome de arquivo, para a próxima foto que ele substitui o arquivo anterior, que é o que eu esperaria.

Mas o que eu realmente ia dizer é talvez você ter que testar se o PAT "/sdcard/..." realmente existe ou não. Além disso, você pode simplificar seu processo passando o caminho para a próxima atividade.

Boa sorte,

Jamie Irwin

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top