Pourquoi le bouton HDR est-il manquant?

Réponses:

11

J'ai jeté un coup d'œil à cela maintenant que la source Android 4.2 est sortie.

Il s'avère que le HDR n'est pas effectué par l'application caméra elle-même, c'est un mode scène qui doit être pris en charge par la mise en œuvre du système d'exploitation et / ou les pilotes.

L'application appareil photo supprimera le bouton HDR si:

  1. Vous n'êtes pas au niveau API 17 (Android 4.2) ou supérieur, ou;
  2. Camera.Parameters.getSupportedSceneModes () renvoie null ou une liste qui ne contient pas la chaîne "hdr"

En bref, le mode HDR est implémenté par le pilote de caméra du système d'exploitation lui-même et ne peut pas être ajouté à l'application de caméra standard sans plonger dans la source du système d'exploitation. Je ne l'ai pas encore fait, mais si je le comprends, je publierai une mise à jour.

Gareth Davidson
la source
Pour autant que je sache, il existe un fil sur XDA qui explique comment obtenir une fuite de camera.apk 4.2 sur un Galaxy Nexus. Donc ce n'est pas dans le pilote, c'est des trucs de libcamera (voir le .zip lié dans le fil pour plus)
ce4
@ ce4 L'application appareil photo est rétrocompatible avec 4.1 mais comme je l'ai dit, elle supprimera le bouton HDR de l'écran s'il échoue à l'un des deux tests ci-dessus. L'application appareil photo demande simplement le mode HDR au système d'exploitation s'il est disponible, je n'ai pas plongé les parties C ++ pour voir s'il était dans le système d'exploitation ou le pilote, mais il ne fait certainement pas partie de l'application appareil photo / galerie ni de Java parties d'Android.
Gareth Davidson