Spanish (SOLUCIONADO)Hacer aplicacion Launcher

Discussion in 'Spanish Forum' started by TheFalcon, May 6, 2019.

  1. TheFalcon

    TheFalcon Active Member Licensed User

    Buenas, después de intentar hacer una aplicación que arranque como si fuera modo kiosko y no conseguirlo( no puedo hacer root a todos los dispositivos en las que la instale) , probé lo de que arrancara con el servicio STAR, y me funciona pero tarda unos 20 35 segundos en iniciar , y en ese tiempo el usuario le da tiempo a mucho. He barajado la posibilidad de hacer que mi aplicación pueda sustituir la que viene por defecto en los dispositivos, como launcher, y así arrancaría siempre, lo que no se si es viable ni como hacerlo.

    El problema es que para nuestros clientes que tocan todo, quiero bloquear las barras de tareas de wifi etc, y ciertos botones , y necesito que se haga lo mas rápido posible al encender el dispositivo.

    Un saludo
     
  2. José J. Aguilar

    José J. Aguilar Active Member Licensed User

    TheFalcon likes this.
  3. TheFalcon

    TheFalcon Active Member Licensed User

    Gracias Jose, mirare ese enlace a ver que tal, aunque encontré un post en el que erel hablaba del launcher y me a valido, ya que lo que yo buscaba era que al iniciar el dispositivo android cargara mi apk y no dejara hacer nada al usuario, ni boton home , back , ni la barra de opciones el wifi etc. Así que doy el tema por cerrado , mañana pego el codigo por si alguien lo necesita que no lo tengo aquí ahora mismo, y ya mañana pongo solucionado.

    Un saludo
     
    José J. Aguilar likes this.
  4. TheFalcon

    TheFalcon Active Member Licensed User

    Perdón por la tardanza, el maldito trabajo, aquí os pongo como lo hice, y cierro el post

    MUY IMPORTANTE, antes de probar , poned un botón para ir a settings o algo, lo digo por experiencia, que yo no lo hice y tuve que arrancar el móvil en modo Seguro para poder desinstalar la apk :p ( si no hubiera tenido que resetear de fabrica) , o cuando os diga de sustituir el launcher no digáis SIEMPRE

    En Activity Create
    Code:
    If FirstTime Then
        startApp(
    "com.aplicacionlauncher")

        
    End If

        
    Activity.LoadLayout("1")
    '    If FirstTime Then
        BarraDeEstadomView.Initialize("")
        BarraDeEstadomView.Text =
    ""
        QuitarBarraEstatus

    Code:
    Sub Activity_Pause (UserClosed As Boolean)
        
    ' para que vuelva a aparecer al salir (por ejemplo)
        ' la puedes llamar desde donde quieras
        If UserClosed Then PonerBarraEstatus
       
    End Sub
    Code:
    'con esto cargo el launcher
    Sub startApp(pkgName As StringAs Boolean
        
    Try
            
    Dim Intent1 As Intent
            
    Dim pm As PackageManager
            Intent1 = pm.GetApplicationIntent (pkgName)
            
    StartActivity (Intent1)
            
    Return True
        
    Catch
            
    Return False
        
    End Try
        
    End Sub
    Code:
    Sub QuitarBarraEstatus
        
    Dim mlp As JavaObject
        
    Dim vtype As Int = -1, pixelFormat As Int = -3
     
        
    Try
            mlp.InitializeNewInstance(
    "android.view.WindowManager$LayoutParams"Array(vtype, 1002010,296, pixelFormat))
        
    Catch
        
    End Try
     
        
    Try
            mlp.SetField(
    "gravity"Bit.Or(Gravity.TOP, Gravity.CENTER))
        
    Catch
        
    End Try
     
        
    Try
            
    Dim windowManager As JavaObject = BarraEstatusGetContext.RunMethod("getSystemService"Array("window"))
        
    Catch
        
    End Try
     
        
    Try
            windowManager.RunMethod(
    "addView"Array(BarraDeEstadomView, mlp))
        
    Catch
        
    End Try
     
    End Sub

    yo añado un mensaje al boton de volver
    [CODE]
    Sub Activity_KeyPress (KeyCode As Int) As Boolean
       

        
    If KeyCode = KeyCodes.KEYCODE_BACK Then
       
            
    ' Pulsado botón Back
            ToastMessageShow("Botón Deshabilitado",False)
            
    Return True   ' Consume el evento y no sale
               
        
    End If


    End Sub

    Sub BarraEstatusGetContext As JavaObject
        
    Return BarraEstatusGetBA.GetField("context")
    End Sub

    Sub BarraEstatusGetBA As JavaObject
        
    Dim jo As JavaObject
        
    Dim cls As String = Me
        cls = cls.SubString(
    "class ".Length)
        jo.InitializeStatic(cls)
        
    Return jo.GetFieldJO("processBA")
    End Sub
    en el manifest editor
    Code:
    AddPermission(android.permission.SYSTEM_OVERLAY_WINDOW)
    AddPermission(android.permission.SYSTEM_ALERT_WINDOW)
    AddActivityText(main, <
    intent-filter >
            <action android:name=
    "android.intent.action.MAIN" />
            <category android:name=
    "android.intent.category.HOME" />
            <category android:name=
    "android.intent.category.DEFAULT" />
        </
    intent-filter>)
     
    inakigarm and José J. Aguilar like this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice