Ver la Versión Completa : [ CONSULTA ] Escena capa superpuesta en segundo plano tras app abierta
emiegna
17/02/15, 12:09:32
Buenas. Veamos, entiendo que de entrada lo que pretendo quizás no tenga solución, ya que después de darle vueltas al asunto, leer tutoriales, tener algunos conocimientos basicos sobre Tasker y haber leído algo sobre el tema en el foro me estoy temiendo lo peor. Asi que,... se masca la tragedia... :-(
En concreto ya vi un post que trataban Caravantes y Mlesir (de hace ya algún tiempo) y no se yo si tendrá solución alguna mi problema, entonces.
Tengo creado desde hace un tiempo un "modo coche" que básicamente uso con la voz (AutoVoice). Pero al niño (ese soy yo) se le ha ocurrido la genial, fantástica, maravillosa idea de hacer modificaciones (ampliaciones) a este "modo coche". Si es que no debía haber conocido Tasker...
He creado una escena principal con varios botones (imagenes) que permanece siempre en primer plano a no ser que destruya la escena. Permanece además en primer plano porque se muestra como capa superpuesta, bloqueada, ventana completa. Vamos, como si fuese un navegador de los coches "moernos". Desde esta escena puedo "llamar" a otras escenas o aplicaciones. Por ejemplo, Google Maps para navegar. Ya digo, o bien con la voz, o bien con los "deditos". ¿Que porqué no pongo que se muestren estas escenas como actividad o diálogo? Porque no quiero que cuando se muestre una escena pueda por error u otros motivos que desaparezca del primer plano al pulsar botones "fisicos" como el botón back, home, multitareas o menu (Xperia Z2). Conozco el modo escena como actividad y el tema de detener evento en la pestaña tecla, pero no resuelve mi problema porque si le doy al "home" ya la hemos liao.
Yo quiero que la escena principal, la primera, la que tiene los "botones" "teléfono ","navegador", etc permanezca en primer plano, pero cuando llame a una aplicación (por ejemplo, Google Maps, o una llamada de telefono) pase esta escena a un segundo plano. Ya, ya,... como capa superpuesta, bloqueada no es posible (o eso creo).
Actualmente, lo que he creado es un perfil que sencillamente destruye la escena (tambien lo hice ocultando escena, con idénticos resultados) cuando la aplicación que "llamo" se abre. Y con una tarea de salida que muestra de nuevo la escena destruida (u oculta) cuando la aplicación se cierra. Pues bien, por muuu rapido que sea mi movil, obviamente existe en este caso unas decimas de segundo donde llego a ver la pantalla de inicio antes de que se muestre la escena principal. Y claro, queda tela de feo. Mu cutre, vamos.
¿Cómo podría resolver esto? Estoy pensando que quizás dándole otro enfoque. Pero no se me ocurre nada.
A ver, por aquí hay grandes cabezas pensantes (me consta sobradamente) que quizá puedan aportarme alguna, o algunas, ideas :-)
(perdon por el tocho)
Caravantes
17/02/15, 23:42:26
Pues bien, por muuu rapido que sea mi movil, obviamente existe en este caso unas decimas de segundo donde llego a ver la pantalla de inicio antes de que se muestre la escena principal. Y claro, queda tela de feo. Mu cutre, vamos.
Idea brainstorm que no sé si funcionará (tengo muy poca experiencia con escenas):
Cuando lanzas una app, primero destruyes la escena principal mostrada como capa superpuesta y bloqueada. Antes de lanzar la app, podrías presentar la misma escena, pero no-superpuesta (en modo actividad u otro). A continuación lanzas la app. De este modo, cuando luego cierres la app no te importará que se vea durante una fración de segundo lo que hay detrás, porque verás la misma imagen (escena), idéntica a la escena principal que medio segundo después aparece como capa superpuesta y bloqueada. Quizá no se note el cambio entre una escena y la otra, tal vez tenga efecto de continuidad.
emiegna
18/02/15, 00:44:15
Veamos, de entrada podría ser una idea original en una lluvia de ideas posibles... Muy interesante. ¿Te refieres a lo siguiente? Me olvido del perfil con contexto de aplicaciones y tareas de entrada y salida que respectivamente destruyen y muestran la escena como capa superpuesta, bloqueada. Y lo que hago, no se si entendí correctamente tu idea, es no destruir la escena como capa superpuesta, bloqueada, que contiene el botón (imagen) que "llama", pongamos como ejemplo, a Google Maps, y como primera accion al pulsar este botón muestro la misma escena como actividad (o diálogo) para acto seguido, y como segunda acción de la tarea, abrir Google Maps. ¿Correcto? En teoría creo que no...
Creo que no te he entendido bien. O bien funciona correctamente una vez lo entienda, o bien, y si no funciona, presiento que el enfoque es bueno y por ahí iran los tiros.
Haré pruebas en torno a tu idea.
Gracias Caravantes.
P.D.: Una luz de esperanza... :-)
Edito: Coño, por ahí van los tiros. Que buen enfoque. Y no se me ha ocurrido a mi. Vaya. Y ya no sólo es dominar Tasker, sino pensar. Con lo que yo le doy al coco... Sigo haciendo pruebas. Va por ahí. Estoy convencido :-)
Caravantes
18/02/15, 03:39:47
no se si entendí correctamente tu idea, es no destruir la escena como capa superpuesta, bloqueada, que contiene el botón (imagen) que "llama", pongamos como ejemplo, a Google Maps, y como primera accion al pulsar este botón muestro la misma escena como actividad (o diálogo) para acto seguido, y como segunda acción de la tarea, abrir Google Maps. ¿Correcto? En teoría creo que no...
Sí, esa era la idea inicial Ahora le he dado otra vuelta al mismo planteamiento (escenas iguales superpuestas) y creo que se puede concretar de una segunda forma que me parece más adecuada, y es lo siguiente:
- Primero de todo pones la escena, mostrándola en modo actividad o similar.
- En segundo lugar, encima pones otra vez la escena, pero en modo superpuesta-bloqueada (es posible que necesites utilizar dos escenas con nombres distintos, aunque sean archivos idénticos).
- Entonces tocas en el botón. Se quita la escena superpuesta y lanzas el Maps (o la app que corresponda).
- Cuando el Maps termine y se cierre, vuelves a poner la escena principal superpuesta-bloqueada.
De este modo, cuando se cierra el Maps lo que queda a la vista es la misma imagen de la escena que se va a poner inmediatamente.
La particularidad de este nuevo método es que la escena "de fondo" está preparada desde el principio, y puede quedarse ahí haciendo su función durante todo el rato, no hace falta ponerla cada vez que lances el Maps u otra aplicación.
Repito: no estoy seguro de que vaya a funcionar bien. Suerte.
emiegna
18/02/15, 16:07:31
Pues no... En teoría podría haber sido una solución a medias, ya que una escena como actividad no queda en primer plano al abrir una app y ademas podemos "anular" la tecla back. Pero no se puede anular la tecla home (no soy root). Por tanto, solución a medias que me podría más o menos servir si en la práctica, para colmo, no ocurriese lo que ocurre... Y es que si bien es verdad que una vez que la escena como actividad está en primer plano, si pulsamos la tecla back (si así lo hemos configurado) la escena no se oculta, ni se destruye. Pero si he abierto una app y luego la cierro con el botón back, acaba ocultandose o destruyendose la escena como actividad. Aunque lo que más bien creo es que una vez que una app pasa a primer plano se destruye la escena.
Y es que ya no se por donde tirar...
Estoy pensando en otra idea que nada tenga que ver con esta escena principal para tener "algo" siempre en primer plano y que solo pase a segundo plano al abrir una app. Para finalmente pasar de nuevo a primer plano al cerrar la app. Vamos, como si fuese una pantalla de inicio...
emiegna
19/02/15, 20:45:07
Nada... He probado todo tipo de combinaciones con escenas clonadas en modo actividad y modo dialogo, "acompañando" a la escena principal como capa superpuesta, bloqueada. Pero nada, al salir de una aplicación pulsando la tecla back la escena como actividad o como diálogo también desaparecen. O quizás desaparezcan una vez abierta la aplicación. El caso es que no aparecen. Y en propiedades de las escenas esta marcado "detener evento". Pero ni por esas...
Probé con otro enfoque. Se trataba de apagar la pantalla nada más salir de la aplicación abierta, para acto seguido mostrar escena como capa superpuesta, bloqueada y finalmente "wake device" con Secure Settings. Pensé que al menos no se llegaria a ver la pantalla de inicio. Pero nada tampoco. Antes de apagarse la pantalla, y tras salir de la aplicación, por unas décimas de segundo se ve la pantalla de inicio. Probé con las tres "formulas" que conozco para apagar la pantalla, para ver si alguna de ellas era más rápida, pero son prácticamente iguales (Bloqueo de sistema, Lock Device de Secure Settings, app Screen Off).
A ver, no se yo si debería darle otro enfoque. Y es que tras salir de una aplicación se va a mostrar la pantalla de inicio. Pantalla de inicio "plagao" de widget, por otro lado. No se. Estoy rondando a una idea que no llego a ver del todo en la práctica... Es como una vez que se active el perfil principal (conexión de Bluetooth con el coche) establecer otro fondo de pantalla, o yo que se, que simule la escena principal, para acto seguido mostrar la escena principal. De ese modo, al cerrar una aplicación, solo se mostraria un fondo de pantalla "calcado" a la principal escena como capa superpuesta durante unas decimas de segundo. No se si me explico bien. Y claro, en la tarea de salida de este perfil principal recuperar mi pantalla de inicio.
¿Se os ocurre alguna idea "genial" que vaya por aqui, por otro lado, o yo que se?
Estoy abierto a todo tipo de sugerencias. Las necesito, por favor :-)
Podrías probar a lanzar la app (por ejemplo google maps con un intent). Lo digo pq quizas asi al volver a tras se mantiene la primera escena, sin que se destruya.
El problema es que creo que requiere ser root.
Otra cosa no se me ocurre.
emiegna
23/02/15, 11:55:02
Bueno, ya tengo el asunto resuelto. Lo he hecho con otro enfoque habida cuenta la imposibilidad de hacerlo con una escena bloqueada. Si existiese la posibilidad de que las escenas bloqueadas permaneciesen para determinados casos en segundo plano tras la apertura de una app... Pero de momento no existe. Al menos si de escenas bloqueadas hablamos. En fin.
Expongo aquí la solución adoptada por si a alguien le interesa.
Mi pantalla de inicio (Go Launcher Ex) tan solo tenia una sola ventana, como a mi me gusta. Pues bien, he añadido una segunda ventana a la pantalla de inicio. Y mediante widgets creados con Minimalistic Text he creado la ventana principal de mi "modo coche". Con sus botones grandes de "telefono", "contactos", "favoritos", "navegador", "ir a casa", "musica", etc. A continuación he creado con Tasker escenas bloqueadas con identica estetica a la ventana "secundaria" de mi pantalla de incio, de forma tal que si pulso, por ejemplo, el boton "aplicaciones" de esta ventana secundaria de la pantalla de inicio se muestra una escena bloqueada con botones de "email", "notas", etc. En estas escenas tengo un boton "volver" por si decido no pulsar ningun boton (no abrir ninguna aplicacion, en este ejemplo). En este caso, obviamente, se destruye la escena mostrandose enseguida la ventana "secundaria" de mi pantalla de incio. ¿Que decido por el contrario pulsar un boton de apertura de una aplicación en la escena del ejemplo? Pues se abre la aplicación correspondiente para terminar enseguida destruyendose la escena bloqueada.
Por su puesto, ademas de "trabajar" mi "modo coche" mediante botones como acabo de explicar, tambien lo hace mediante la voz (AutoVoice).
La solución, aunque nada tiene que ver con el título del post, ha sido bien sencilla. Si quería que la escena principal funcionase como una pantalla de inicio, pues hala tan sencillo como crear una pantalla de inicio (ventana secundaria de pantalla de inicio, mejor dicho).
Por último, tengo una cuestión que plantear sobre este "modo coche", pero creo que debo plantearlo en otro post por si existe solución (o no) y hay gente con el mismo problema. Para una búsqueda más fácil, quiero decir.
Muchas gracias a los dos por vuestro interés, como siempre ;-)
Por cierto, no se si en este caso debo cambiar el post en el sentido de considerarlo como solucionado, ya que realmente la solución no se ha encontrado mediante una escena principal. Ya me decís si lo dejo tal cual, o lo pongo como solucionado.
Caravantes
23/02/15, 18:49:26
no se si en este caso debo cambiar el post en el sentido de considerarlo como solucionado
Yo opino que el problema original no está solucionado. El hilo puede quedar así, abierto, por si en el futuro hay alguna otra persona que encuentra la solución, tal vez con alguna nueva versión de Tasker.
Tu modo de resolverlo ha sido muy ingenioso. Gracias por compartirlo.
vBulletin® v3.8.1, Copyright ©2000-2025, Jelsoft Enterprises Ltd.