Spanish Icono de la aplicación

23021959Pepe

Member
Licensed User
Longtime User
Hola a todos, mi pregunta es ¿como se coloca el icono de la aplicación, en la parte superior del móvil y así saber que la aplicación esta activa?.

Saludos
Pepe
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Lo de: "en la parte superior del móvil" que preguntas es la barra de estado, puedes hacerlo asi:

B4X:
Dim n As Notification

n.Initialize
n.Icon = "icon"
n.Vibrate =False
n.Sound = True
n.SetInfo("Esto es el titulo", "Esto es el cuerpo del mensaje", "Main")
'Cambiar Main por "" si el codigo viene del layout que se le llama.

n.Notify(1)

saludos
 

23021959Pepe

Member
Licensed User
Longtime User
Gracias Jesús por tu respuesta, entre la tuya y lo que que hay en Similar threads haber si lo consigo.

Saludos
Pepe
 

23021959Pepe

Member
Licensed User
Longtime User
Jesús, ahora tengo el mismo problema solo que al revés. Ejecuto la aplicación y aparece el icono, pero cuando la cierro sigue tan a gusto el icono en la barra de estado. ¿que hago para que ahora me desaparezca?

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Pepe

Perdona, pero se me olvidó ponerte como se quitaba :oops:

Siguiendo con el ejemplo anterior, si el id que le diste para activarlo es el 1 (n.Notify(1)) pues ahora lo cancelas asi:

B4X:
  n.Cancel(1)


Si haces varias llamadas de notificaciones diferentes desde el mismo programa, el id que das para activar, es el mismo para cancelar.

Saludos
 

23021959Pepe

Member
Licensed User
Longtime User
No consigo que al ejecutar el icono de la aplicación situado en la Barra de Esatdo abra el Layout en que se encontraba.
Me explico un poco más. Si por ejemplo mi aplicación se encontraba mostrando la pantalla About y abro otra aplicación, al pulsar sobre mi icono y si tengo solamente las comillas "", no hace nada (no activa la aplicación):
B4X:
    Notificacion.SetInfo("CIDE", "Aplicación en uso", "")
y sin embargo si escribo entre comillas el nombre de cualquier Layout, por ejemplo el about:
B4X:
    Notificacion.SetInfo("CIDE", "Aplicación en uso", "about")
entonces si abre y se sitúa en esa pantalla, pero para que suceda tiene que estar el nombre del Layout escrito entre las comillas.
Mi aplicación se compone de seis Layout y quisiera que, sea cual sea el Layout activo en el que se encuentre vuela a mostrar esa misma pantalla cuando se pulse sobre el icono de la Barra de Esatdo.
No se si he conseguido explicarme lo suficiente.
El codigo de Service es:
B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
      Dim Notificacion As Notification
End Sub

Sub Service_Create
    Notificacion.Initialize       
    Notificacion.Icon = "icon"
    Notificacion.Light = False
    Notificacion.Sound = False
    Notificacion.Vibrate = False
    Notificacion.SetInfo("CIDE", "Aplicación en uso", "about")
    Service.StartForeground(1, Notificacion)
End Sub

Saludos.
Pepe
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Pepe:

Al pasar una cadena vacia le dices que vuelva al activity que se creó la notificación, no al ultimo activity que estes.
Si quieres que vaya al ultimo Layout, copia todo el código igual en los Activity_Create de los Layout, y para que se active al salir pon esto:

B4X:
Sub Activity_Pause (UserClosed As Boolean)
  If UserClosed = False Then 
    Notificacion.notify(1) 
  else
    Notificacion.cancel(1) 
  end if
End Sub

Con esto lo que haces es que al salir por entrar en otra aplicación actives la notificación, y al salir del Layout por volver lo cancele. De esa forma si giras el movil, como tambien entrará en el Sub Activity_Pause (UserClosed As Boolean), al salir hacia atras lo cancelará ;).

Saludos
 

23021959Pepe

Member
Licensed User
Longtime User
Hola Jesús, todo funciona tal y como me lo has indicado, pero ahora me vuelvo a encontrar con un viejo problema y es, que se vuelve a borrar el icono de la aplicación cuando pulso el botón Borrar que aparece al desplegar la Barra de estado.
Antes con
B4X:
    Service.StartForeground(1, Notificacion)
que tenia en el Servicio no se borraba.
En otro post me informaste que usando CustomNotification y usando la funcion NoClear a True no se borraba. La verdad es que no llegue a probarlo porque no se como se utiliza, ya que cargo la librería declaro
B4X:
    Dim CN As CustomNotification
pero no me aparece la funcion NoClear, ni se donde colocarla.

Saludos
Pepe
 

mevabien

New Member
he hecho esto y no funciona,
por favor me lo podríais mandar corregido
y así nos ayudáis a todos los novatos
 

Attachments

  • SOS notificar arriba.zip
    8.4 KB · Views: 149
Top