Problema con la orientación de la pantalla de Android

Estoy trabajando en las aplicaciones de fondo de pantalla en android y necesito manejar correctamente los cambios de orientación de la pantalla.

Actualmente utilizo onConfigurationChanged para este propósito (en este método necesito cambiar coordenadas de mis elementos de pantalla de LWP. Utilizo andengine ). Todo funciona bien en los emuladores y mis teléfonos de prueba, pero algunos de mis clientes con Samsung Galaxy Note2 (t03g) , LG emoción (LGE LG-P925) informa de los problemas con el trabajo de la aplicación incorrecta durante el cambio de orientaciones de pantalla.

No tengo estos teléfonos a mano, pero puedo suponer que el problema está relacionado con que onConfigurationChanged no se haya llamado.

¿Es correcto usar el método onConfigurationChanged ? Tal vez necesito usar onSurfaceChanges o algo así? ¿Podría sugerirme la manera correcta de resolver este problema?

Alos, he añadido android:configChanges="keyboardHidden|orientation" en mi AndroidManifest.xml :

 <activity android:name=".WallpaperSettings" android:configChanges="keyboardHidden|orientation" android:exported="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.PREFERENCE" /> </intent-filter> </activity> 

En mi fondo de pantalla en vivo, que maneja los cambios de orientación, utilizo el método onConfigurationChange() para comprobar los cambios de orientación, pero no tengo ninguna experiencia directa con los 2 teléfonos, aunque nunca he recibido ninguna queja sobre ellos. Mi método se parece a lo siguiente:

  @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { rotated = true; } else { rotated = false; } } 

Y en el método draw() , compruebo el booleano rotated . Hay controles adicionales en onSurfaceChanged() para corregir los cambios de resolución cuando cambia la orientación.

No tengo android:configChanges="keyboardHidden|orientation" en mi archivo de manifiesto en absoluto.

  android:configChanges="orientation|screenSize" 

Precaución: A partir de Android 3.2 (API nivel 13), el "tamaño de pantalla" también cambia cuando el dispositivo cambia entre orientación vertical y horizontal. Por lo tanto, si desea evitar que el tiempo de ejecución se reinicie debido al cambio de orientación al desarrollar para API de nivel 13 o superior (como declarado por los atributos minSdkVersion y targetSdkVersion), debe incluir el valor "screenSize" además del valor "orientation". Es decir, debes decalar android: configChanges = "orientation | screenSize". Sin embargo, si su aplicación se orienta al nivel 12 de la API o inferior, su actividad siempre se encarga de este cambio de configuración por sí mismo (este cambio de configuración no reinicia su actividad, incluso cuando se ejecuta en un dispositivo Android 3.2 o superior).

  • Llama cuando se hace clic en Wallpaper Wallpaper en Android
  • GL El ejemplo del papel pintado muestra solamente la pantalla verde en emulador, pero está trabajando en el dispositivo
  • Establecer Live Wallpaper de forma programática en Dispositivo enraizado Android
  • Cómo crear un Android Live Wallpaper con Delphi XE5?
  • Vídeo de Android como fondo de pantalla en vivo
  • Invocar a un receptor en establecer el fondo de pantalla en vivo en android?
  • Texto dinámico en fondo de pantalla en vivo
  • Android 3D Live Wallpaper - ¿qué motor utilizar?
  • Live Wallpaper en modo de vista previa
  • Android: ¿Cómo iniciar la actividad desde el menú de preferencias?
  • Obtener un error en WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.