Appareil photo Android inexplicable rotation sur la capture pour certains appareils (pas dans l'EXIF)

Ce que je fais semble que ce devrait être simple, mais je suis toujours perdu après j'ai lu tous les possibles Stackoverflow réponse que je peux trouver et Googlé chaque article que je peut trouver.

Je suis en utilisant un aperçu SurfaceView et la capture d'une image à partir d'une activité est définie pour screenOrientation="paysage" dans mon AndroidManifest.xml.

J'ai suivi l'exemple de la Caméra le code de l'application et de la pensée, les choses étaient de travail jusqu'à ce que j'ai essayé de mon application sur quelques appareils Motorola exécution 1.5.

J'ai le OrientationEventListener en cours d'exécution OK et j'ai utiliser la réflexion pour voir si la valeur de la rotation en tant que tel:

final int latchedOrientation = roundOrientation(mLastOrientation + 90);

Parameters parameters = preview.camera.getParameters();

JPLog.d("Setting camera rotation = %d", latchedOrientation);
try {
    //if >= 2.0
    Method method = Camera.Parameters.class.getMethod("setRotation",
        int.class);

    if(method != null) {
        method.invoke(parameters, latchedOrientation);
    }

} catch(Throwable t) {
    //if < 2.0
    parameters.set("rotation", latchedOrientation);
}

preview.camera.setParameters(parameters);

NexusOne (OS 2.2) - Fonctionne très bien. latchedOrientation = 0, image OK, sans aucune rotation dans l'en-tête EXIF.

T-Mobile G1 (OS 1.6) - fonctionne Également bien. latchedOrientation = 0, image OK.

Motorola Backflip (OS 1.5) - rotation de l'Image. latchedOrientation = 0, l'image n'a pas d'EXIF de rotation en elle.

Motorola CLIQ (OS 1.5) - rotation de l'Image. latchedOrientation = 0, l'image n'a pas d'EXIF de rotation en elle.

Ce qui se passe avec ces appareils Motorola? Je pensais que mon problème était le Motorola pilote de la caméra n'était pas la rotation de l'image, afin trouvé le Sanselan EXIF cours de lecture pour Android et se prépare à faire tourner moi-même. La chose drôle est, il est en-têtes EXIF mais pas de rotation de l'élément.

Si j'ai mis la rotation manuellement à 90 degrés, les images parfaites à la périphériques Motorola, mais maintenant, le G1 et le NexusOne avoir des images qui sont une rotation de 90 degrés (pas ce que je veux). Il y a quelque chose que je ne suis pas arriver ici.

Je suis douter c'est de 1,5 question, ou bien que quelqu'un l'ai posté des infos sur elle?