Spanish Hola, se puede detectar que se ha abierto la aplicación de Herramientas o ajustes de android?

deneus

Member
Licensed User
Longtime User
Hola, se puede detectar que se ha abierto la aplicación de Herramientas o ajustes de android?
Un saludo.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Si, mirando los procesos activos.

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Te pongo un codigo rápido para verlo en un listview que ademas cada linea la cambia de color para que veas bien cada proceso

B4X:
Sub Globals

    Dim ListView1 As ListView 
   
    Dim lstname,lstpid, lstnamepid, lstret As List
    Dim OS As OperatingSystem

End Sub


Sub Activity_Create(FirstTime As Boolean)

 
  ListView1.Initialize("")
 
  Activity.AddView(ListView1,0,0,100%x,100%y)
       
  
  ActualizarProcesos

end sub
   

Sub ActualizarProcesos
   
    Dim Texto As String
    Dim cambiar As Boolean
    OS.Initialize("OS")
   
 
  lstname.Initialize
  lstpid.Initialize
  lstnamepid.Initialize
  lstret=OS.RunningAppProcessInfo(lstname,lstpid,lstnamepid)
  ListView1.Clear
  ListView1.FastScrollEnabled = False
    ListView1.Color = Colors.Blue
    ListView1.SingleLineLayout.Label.TextSize = 17
  ListView1.SingleLineLayout.Label.Gravity = Gravity.Left
       
  'lstname.Sort(True) ' por si lo quieres ordenado
    cambiar = False
  For i = 0 To lstname.Size - 1
      Texto = lstname.Get(i)
        ListView1.AddSingleLine(Texto)
       
        If cambiar Then
          ListView1.SingleLineLayout.Label.TextColor = Colors.White
        Else
          ListView1.SingleLineLayout.Label.TextColor = Colors.Cyan
        End If
        cambiar = Not(cambiar)
        DoEvents
  Next

  Activity.Title= "Procesos en marcha: " & lstname.Size
  ListView1.SetSelection (0)
   
   
   
End Sub

Saludos
 

deneus

Member
Licensed User
Longtime User
Gracias, solo una cosa mas, en este ejemplo hay que hacer un bucle, pero no se si se puede hacer algún evento de sistema para que alerte de un cambio en el sistema y comprobar si se ha abierto herramientas?
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Muy facil, crea un temporizador (o un servico) que cada x tiempo mire si está el proceso activo que te interesa, y cuando esté ve a hacer lo que quieras, ni tienes que crear un listview ni nada, solo comparar el lstname.Get(i) con el proceso que buscas y cuando esté ir a ese sub, al fin y al cabo un Evento no deja de ser un Sub generado por algo, en este caso lo generas tu, o directamente desde el timer haces lo que tengas que hacer.

Saludos
 
Top