getSupportedPictureSize () retorna um valor que não é realmente suportado pelo Nexus4

Eu estendi um SurfaceView para exibir o feed da câmera para um aplicativo de câmera muito simples. Para encontrar o tamanho de visualização ideal para cada dispositivo, usei esse código de amostra que é usado em quase todos os aplicativos de câmera de código aberto que vi:

    List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
    double minDiff = Double.MAX_VALUE;
    for (Camera.Size size : sizes) {
        if (Math.abs(size.width - width) < minDiff) {
        screenWidth = size.width;
        screenHeight = size.height;
        minDiff = Math.abs(size.width - width);
        }
    }

Tudo funciona perfeitamente até este ponto.

Agora, devido à natureza do aplicativo, eu tenho que manter dois bitmaps na memória durante o curso de uma sessão e por uma questão de simplicidade (evitando problemas de memória durante o teste) usei o mesmo código para o TAMANHO DA IMAGEM (substituído getSupportedPreviewSizes () com getSupportedPictureSizes ()). Tudo funciona muito bem na maioria dos dispositivos, embora eu tenha que decidir outra maneira de escolher o tamanho de imagem ideal para cada dispositivo.

Recentemente, durante o teste em um dispositivo Nexus 4, esse loop anterior falhou ao escolher o tamanho ideal da imagem. Após a investigação, descobri que as funções getSupportedPictureSizes () retornam um valor, ou seja, 1280 * 960, que na verdade não é suportado pela câmera do Nexus 4. Então, como alguém resolve esse problema? Quero dizer, essa função não deve apenas retornar os valores que a câmera do dispositivo suporta? Tenho certeza de que haverá outros dispositivos com o mesmo problema que não poderei testar. Alguma pista de como esse problema deve ser resolvido?

UPDATE: O que está acontecendo é que ele aceita o parâmetro errado sem nenhum erro e a imagem que ele retorna é distorcida, vou tentar tirar uma foto aqui também. Além disso, não há exceções de tempo de execução.

questionAnswers(3)

yourAnswerToTheQuestion