me preguntaba si había una forma simple de ver si una aplicación que se ejecuta en Android se encuentra actualmente en pantalla completa. ¿Hay alguna manera de consultar a Android para ver si estás actualmente en modo de pantalla completa o algo así?¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
Respuesta
Puede averiguar si su Activity
se está ejecutando a pantalla completa a través de getWindow().getFlags()
.
Sin embargo, si por "una aplicación" se refiere a la solicitud de otra persona, entonces la respuesta es no.
Activity.hasWindowFocus() le indica si su actividad es visible para el usuario. Pero, como señala CommonsWare, es mucho más difícil saber si otra actividad está en la parte superior de la pila. Puede intentar consultar el ActivityManager
(por ejemplo, ActivityManager.getProcessTasks()), pero sus métodos no proporcionan una respuesta exacta para su pregunta.
puede usar algo como esto;
findViewById(android.R.id.content).getHeight();
getResources().getDisplayMetrics().heightPixels;
y verificar la igualdad; espero que esto ayude;
Creo que Commonsware quería decir getWindow(). GetAttributes() y no getWindow(). GetFlags(); ya que getFlags no existe hasta donde yo sé. Al menos no está en doc.
necesita leer getWindow(). GetAttributes(). Flags, que es un int.
WindowManager.LayoutParams lp = getWindow().getAttributes(); int i = lp.flags;
FLAG_FULLSCREEN = 1024 según la documentación de android. por lo que su bandera es la undécima picada de lp.flags
si este mordisco = 1, se activa la pantalla completa.
Sólo para completar en respuesta Sigwann:
boolean fullScreen = (getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) != 0;
boolean forceNotFullScreen = (getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN) != 0;
boolean actionbarVisible = getActionBar().isShowing();
A partir de api11 ahora hay una manera de detectar que el uso de una documentación de la interfaz View.setOnSystemUiVisibilityChangeListener
El oyente observa lo siguiente:
Definición de interfaz para una devolución de llamada que se invocará cuando la barra de estado cambie la visibilidad. Esto informa global cambios en el estado de la IU del sistema, no lo que la aplicación está solicitando.
No sé si hay una manera de hacerlo antes de Honeycomb.
Tras la información de Sigwann, aquí mi código ....
public boolean isFullScreen() {
int flg = getWindow().getAttributes().flags;
boolean flag = false;
if ((flg & WindowManager.LayoutParams.FLAG_FULLSCREEN) == WindowManager.LayoutParams.FLAG_FULLSCREEN) {
flag = true;
}
return flag;
}
simples, pero funciona!
¿Qué significa este número mágico 1024? –
Es solo una forma binaria de dar un número con muchos 0 – Alecs
Aún así es el número mágico. Es mejor usar: WindowManager.LayoutParams.FLAG_FULLSCREEN –
Hay un truco agradable, usando la posición absoluta de View
en la pantalla. Simplemente verifique la posición de cualquier vista superior izquierda de su diseño (puede ser invisible), si está en la posición 0,0.De esta manera:
/**
* Check if fullscreen is activated by a position of a top left View
* @param topLeftView View which position will be compared with 0,0
* @return
*/
public static boolean isFullscreen(View topLeftView) {
int location[] = new int[2];
topLeftView.getLocationOnScreen(location);
return location[0] == 0 && location[1] == 0;
}
- 1. ¿Hay alguna forma de determinar si el código GWT se está ejecutando en modo de desarrollo?
- 2. Mac OS X Lion: detectar si se está ejecutando otra aplicación en modo de pantalla completa?
- 3. Cómo determinar si una aplicación web se está ejecutando actualmente
- 4. ¿Cómo saber si se está ejecutando una aplicación de pantalla completa?
- 5. Descubriendo si la actividad de Android se está ejecutando
- 6. ¿Hay alguna forma de saber si un script php se está ejecutando en modo cli?
- 7. Detectando si un navegador está en modo de pantalla completa
- 8. Determinar si el programa se está ejecutando en Windows Server
- 9. ¿Hay alguna forma de determinar si Java System.in es "interactivo"?
- 10. ¿Hay alguna forma de determinar si el iphone está en itinerancia?
- 11. ¿Hay alguna forma de detectar si un objeto está bloqueado?
- 12. En ColdFusion, ¿hay alguna manera de determinar en qué servidor se está ejecutando el código?
- 13. ¿Hay alguna forma de actualizar automáticamente la aplicación en Android?
- 14. Comprobando si mi aplicación de Windows se está ejecutando
- 15. Cómo comprobar si se está ejecutando un Thread de Android
- 16. ¿Hay alguna manera de saber si otra aplicación cambió la resolución de la pantalla en Cocoa?
- 17. ¿Cómo puedo determinar si mi proceso se está ejecutando de forma interactiva?
- 18. ¿Hay alguna manera de que una aplicación Java detecte si la pantalla está bloqueada?
- 19. ¿Hay alguna forma de distinguir entre una actividad de Android onResume desde la pantalla de inicio?
- 20. Android: ¿cómo comprobar si se está tocando la pantalla?
- 21. ¿Cómo determinar si se está ejecutando una instancia previa de mi aplicación?
- 22. ¿Hay alguna forma de determinar la cantidad ideal de hilos?
- 23. ¿Cómo determinar si su aplicación se está ejecutando en el Servidor de Desarrollo de Python local?
- 24. Determinar si una aplicación se está ejecutando en primer plano cuando se recibe una notificación en iOS
- 25. La mejor forma de determinar si .NET 3.5 está instalado
- 26. ¿Cómo determinar si un servicio de Android se está ejecutando en primer plano?
- 27. ¿Hay alguna forma de comprobar si la opción "Instalar desde origen desconocido" está habilitada en Android?
- 28. ¿Hay alguna forma de conectar un navegador que ya se está ejecutando a selenium webdriver en java?
- 29. Seguir ejecutando una aplicación después de que la pantalla se bloquee automáticamente - Phonegap (Android/iOS)
- 30. Cómo detectar si el iphone está sincronizado cuando la aplicación no se está ejecutando
Vale la pena teniendo cuidado en la última línea allí con el getActionBar() isShowing() - si se ha desactivado la barra de acción en el tema en lugar de ocultarlo, entonces getActionBar() puede regresar. nulo. – themightyjon