API da câmera: problemas entre dispositivos

Estou desenvolvendo um aplicativo de câmera basicamente como parte de um aplicativo de mensagens para anexar imagens etc. O aplicativo precisa funcionar para> = SDK 2.2 e:

I não pode use a câmera Android padrão tanto quanto eu adoraria porque:

A natureza do aplicativo determina que a imagem não deve ser salva em disco nunca e alguns OEMs (Samsung) adoram fazer isso sem lhe dar uma escolha.

Eu não posso chamar uma intenção que qualquer outro aplicativo de câmera pode interceptar porque, em seguida, esse aplicativo poderia salvar a imagem.

Meu problema atual é lidar com o fato de que a câmera do Android aparentemente odeia estar na orientação retrato. Especificamente, depois de alguma escavação eu estou monitorando a tela e, em rotação, chamandosetDisplayOrientation(90). Isso funciona, mas as dimensões de surfaceview precisam ser alteradas também e isso deve ser feito dentro de dimensões suportadas ou a configuração do parâmetro trava o aplicativo.

Eu estou fazendo isso com outro trecho SO que eu encontreiAqui (agetBestPreviewSize() método), mas tem um problema gritante que eu não posso acreditar que eu não encontrei mais ninguém ter.

Parte detakePicture ciclo de vida envolve chamando oPostView retorno de imagem. Isso é o que mostra a imagem estática da pausa atualSurfaceView imagem que será retornada via byteArray para o retorno de chamada bruto e / ou jpeg. Meu problema é que essa imagem ainda está distorcida em um punhado de dispositivos de teste aparentemente aleatórios! Portanto, o comportamento é que um usuário vê uma imagem de câmera dinâmica na perfeita relação de aspecto de 4: 3 até que ela tire a foto e a imagem com a qual ela é apresentada esteja comprimida. Observe que o array de bytes está correto e quando eu construo oBitmap no ponto final do sistema de mensagens, ele aparece bem, mas isso ainda é um problema.

Não consigo ver como posso alterar a exibição da imagem parada neste momento. Alguém pode me ajudar com isso?

questionAnswers(3)

yourAnswerToTheQuestion