|   FOROS      |     Tutoriales    |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 Arduino
   Elastix - VoIP Cosas de Windows Webs interesantes  Telecomunicaciones

 


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Nueva sección en esta web: Elastix - VoIP

¿Qué es esto?

- Monta un servidor telefónico en tu ordenador para poderte comunicar mediante tu móvil con otros móviles que estén en tu red Wifi. Parecido a Skipe o Whatsapp-teléfono, pero en este caso tú controlas al servidor.

- Si sabes abrir puertos del router, también puedes comunicarte con tu móvil de una red Wifi a teléfonos de otra red Wifi.

- También puedes comunicarte con teléfonos "normales", pero para eso necesitas un dispositivo que vale unos 60 €.

- Es muy recomendable aprender el funcionamiento de este servidor telefónico Asterisk-Elastix.

 Elastix - VoIP

 

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Basic4Android.

37B.- Estudio de la biblioteca OSLibrary.

Tutoriales. Estudio de la biblioteca OSLibrary.

Presentación

- En el tutorial anterior vimos como podemos parar una aplicación externa desde la aplicación que hemos realizado.

- Ahora vamos a ver las posibilidades que tiene la biblioteca OSLibrary.

 

Crearemos una nueva aplicación.

No hace falta Designer ni Layout ya que los controles (View) se crean en el código.

Y copiamos y pegamos este código...

Estudio de la biblioteca OSLibrary
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
    
' Esta biblioteca obtiene datos del sistema operativo

' No están recogidas estas obciones de kill

'killBackgroundProcesses (packageName As String)
'
'Have the system immediately kill all background processes associated with the given package.
'packageName:
'killProcess (pid As Int)
'
'Kill the process with the given PID.
End Sub

Sub Globals
    ' Crearemos 9 botones.
    Dim Buttons(5,4) As Button
    
    ' Crearemos 1 etiqueta (Label)
    Dim etiqueta As Label
    Dim ListView1 As ListView
    
    Dim OS As OperatingSystem
    Dim informacion As String
    Dim numero_boton As Int
    
    Dim lstname,lstpid, lstnamepid, lstret As List
    Dim lstnameserv, lstpidserv, lstnamepidserv, lstretserv As List
    Dim lstnametar, lstpidtar, lstnamepidtar, lstrettar As List
    
    Dim linea As String
    Dim OS As OperatingSystem
    
End Sub

Sub Activity_Create(FirstTime As Boolean)
   
    Dim ancho, alto, offsetY As Int
    ancho = 60dip
    alto = 30dip
    For y =1 To 2
        For x = 1 To 4
        numero_boton = numero_boton + 1
            Dim b As Button
            b.Initialize("Button") 
            b.TextSize = 8
            b.Text = numero_boton
            b.Tag = numero_boton
            Activity.AddView(b, -80 + x * (ancho + 10dip), -40 + y * (alto + 10dip), ancho, alto)
            Buttons(x,y) = b 
        Next
    Next
    
    ' Los View cuando se crean en el código hay que 
    ' Iniciarlos y luego Añadirlos al Activiy
    etiqueta.Initialize("etiqueta")
    etiqueta.TextSize = 12
    etiqueta.TextColor = Colors.White
    etiqueta.Color = Colors.Black
    Activity.AddView(Etiqueta, 20dip, 80dip, 300dip, 400dip)
    
    ListView1.Initialize("ListView1")
    ListView1.Color=Colors.Blue
    ListView1.Visible=False
    Activity.AddView(ListView1, 10, 200, 100%x, 80%y)
    
    
    OS.Initialize("OS")
     
    lstname.Initialize ' Nombre de los Procesos
    lstpid.Initialize  ' PID de los Procesos
    lstnamepid.Initialize
    lstret=OS.RunningAppProcessInfo(lstname,lstpid,lstnamepid)
    
    lstnameserv.Initialize ' Nombre de los Servicios
    lstpidserv.Initialize  ' PID de los Servicios
    lstnamepidserv.Initialize
    lstretserv=OS.RunningServiceInfo(10, lstnameserv,lstpidserv,lstnamepidserv)
    
    lstnametar.Initialize ' Número de las Tareas
    lstpidtar.Initialize  ' Número de actividades de las tareas
    lstnamepidtar.Initialize
    lstrettar=OS.RunningTaskInfo(10, lstnametar,lstpidtar,lstnamepidtar)
    

End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub Button_Click
    Dim b As Button
    b = Sender
    
    Select b.Tag
Case 1
 ListView1.Visible=False
 informacion = "Memoria interna disponible = " & OS.AvailableInternalMemorySize & CRLF & _
 "Memoria externa disponible = " & OS.AvailableExternalMemorySize & CRLF & _
 "Memoria disponible = " & OS.AvailableMemory & CRLF & _
 "Nivel de bateria = " & OS.BatteryLevel & CRLF & _
 "Placa = " & OS.Bootloader & CRLF & _
 "Bootloader = " & OS.Bootloader & CRLF & _
 "Software personalizado = " & OS.Brand & CRLF & _
 "Uso de la CPU = " & OS.calculateCPUusage & CRLF & _
 "Nombre del código = " & OS.Codename & CRLF & _
 "Densidad de pantalla = " & OS.density & CRLF & _
 "Densidad dpi = " & OS.densityDpi & CRLF & _
 "Dispositivo = " & OS.Device & CRLF & _
 "Display = " & OS.Display & CRLF & _
 "Tiempo de este proceso = " & OS.ElaspedCPUTime & CRLF & _
 "Memoria externa disponible " & OS.externalMemoryAvailable & CRLF & _
 "Huella = " & OS.Fingerprint & CRLF & _
 "Bloques disponibles = " & OS.getAvailableBlocks("/data") & CRLF & _
 "Tareas recientes = " & OS.getRecentTasks(2,3)

 etiqueta.Text = informacion
Case 2
 ListView1.Visible=False
 informacion = "Servicios = " & OS.getRunningServices(1) & CRLF & _
 "Tareas = " & OS.getRunningTasks(1) & CRLF & _
 "Hardware = " & OS.Hardware & CRLF & _
 "Altura en pixel = " & OS.heightPixels & CRLF & _
 "Host = " & OS.Host & CRLF & _
 "Identificador = " & OS.ID  & CRLF & _
 "Incremental = " & OS.Incremental & CRLF & _
 "Manufarurador = " & OS.Manufacturer & CRLF & _
 "Modelo = " & OS.Model & CRLF & _
 "Mi PID = " & OS.myPid & CRLF & _
 "Mi UID = " & OS.myUid & CRLF & _
 "OS = " & OS.OS & CRLF & _
 "Altura Pantalla = " & OS.physicalScreenHeight & CRLF & _
 "Anchura Pantalla = " & OS.physicalScreenWidth & CRLF & _
 "Producto = " & OS.Product & CRLF & _
 "Radio = " & OS.Radio

  etiqueta.Text = informacion
Case 3
 ListView1.Visible=False
 informacion = "Liberar = " & OS.Release & CRLF & _
 "SDK = " & OS.SDK & CRLF & _
 "Bajo de memoria = " & OS.Tags & CRLF & _
 "Tags = " & OS.Tags & CRLF & _ 
 "Umbral de memoria = " & OS.Threshold & CRLF & _
 "Time = " & OS.Time & CRLF & _
 "Memoria externa total = " & OS.TotalExternalMemorySize & CRLF & _
 "Memoria interna total = " & OS.TotalInternalMemorySize & CRLF & _
 "Usuario = " & OS.User & CRLF & _
 "Ancho en pixel = " & OS.widthPixels & CRLF & _
 "Pixel/Pulgada H = " & OS.xdpi & CRLF & _
 "Pixel/Pulgada V = " & OS.ydpi & CRLF & _
 "Infor. CPU = " & OS.ReadCPUinfo
 
  etiqueta.Text = informacion
Case 4
    ListView1.Clear
    For i = 0 To lstname.Size - 1
    linea = lstname.Get(i) & " (" & lstpid.Get(i) & ")"
    ListView1.AddSingleLine(linea) ' Escribe los procesos en el ListView1
    Next

    ListView1.Visible=True

 
   etiqueta.Text = "Listado de Procesos"
Case 5
    ListView1.Clear
    For i = 0 To lstnameserv.Size - 1
    linea = lstnameserv.Get(i) & " (" & lstpidserv.Get(i) & ")"
    ListView1.AddSingleLine(linea) ' Escribe en el ListView1
    Next

    ListView1.Visible=True

 
   etiqueta.Text = "Listado de Servicios"
Case 6
    ListView1.Clear
    For i = 0 To lstnametar.Size - 1
    linea = lstnametar.Get(i) & " (" & lstpidtar.Get(i) & ")"
    ListView1.AddSingleLine(linea) ' Escribe en el ListView1
    Next

    ListView1.Visible=True

 
   etiqueta.Text = "Listado de PID de Tareas"
Case 7

    ListView1.Visible=False

   etiqueta.Text = "Nada"
Case 6
    ListView1.Visible=False
 
   etiqueta.Text = "Nada"
Case Else

   etiqueta.Text = "Nada"
End Select
    
   
    
End Sub

Comentarios al código.

- Fíjate como cambio de línea en el código, un espacio y barra baja _
- Fíjate como cambio de línea en el programa & CRLF

- Se van creando los Botones y añadiendo su propio identificador Tag a cada uno.
Luego en la Subrutina del Botón, según el botón pulsado (Sender) y se obtiene su Tag.
Según el Tag, así se asigna a la variable b.Tag

- Hay dos funciones importantes que no he recogido en este ejemplo y que sirven para terminar un proceso, son:
killBackgroundProcesses y killProcess

Estas funciones las utilicé en el tutorial anterior.

 killBackgroundProcesses (packageName As String)

Have the system immediately kill all background processes associated with the given package.
packageName:
 killProcess (pid As Int)

Kill the process with the given PID.

____________________

Librería OSLibrary

Esta biblioteca es bastante potente, podemos actuar mediante ella en el Sistema Operativo.

Aquí pongo un enlace que vale la pena echarle un vistazo.

http://www.basic4ppc.com/android/help/oslibrary.html#operatingsystem_killprocess

________________________________

Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.com

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información