Italian B4A - Chiusura Programma e ToolBar

marco.canta

Active Member
Licensed User
Longtime User
Ciao, ho bisogno di un vostro aiutino ... anzi doppio aiutino
Sto realizzando un applicazione su Android con hardware dedicato (ora lo sto sviluppando su un tablet Samsung), dove gira solo il mio applicativo.
Nonostante svariati tentativi e ricerche non sono riuscito a risolvere due problematiche.
1. L'applicazione va in esecuzione in FullScreen ma facendo scorrere il dito dal basso dello scherme appare il menu classino " < o = " vorrei evitare che questo accada.
2. Per chiudere il programma vorrei usare un Button o Label Specifica che se tenuto premuto più di 5 sec chiude l'applicazione.

Grazie Marco
 

Sagenut

Expert
Licensed User
Longtime User
Per avere l'app a Full Screen senza altre alternative devi guardare questo:
Kiosk Mode
Controlla bene che non ci sia una versione più aggiornata del metodo descritto.
Attenzione che devi davvero prevedere un pulsante o altro per chiudere l'app altrimenti penso che l'unica soluzione sia il riavvio del telefono.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Per il punto (2) puoi fare un Button o una Label ed utilizzare l'evento LongClick però non credo si arrivi a 5 secondi, secondo me potresti aggiungere una richiesta all'utente se è sicuro che vuole uscire dal programma.
 

Sagenut

Expert
Licensed User
Longtime User
Oppure puoi intercettare il Touch su un Panel.
Con l'evento Action_down fai partire un timer da 1 secondo che incrementa di 1 una variabile. Se la variabile arriva a 5 sono passati i 5 secondi.
Con l'evento Action_up disabiliti il timer e rimetti la variabile a 0 per bloccare il conteggio se uno ci ripensa e toglie il dito prima di essere arrivato a 5 secondi.
Magari non è un metodo molto pulito però si avvicina di più a quello che vuoi.
 

marco.canta

Active Member
Licensed User
Longtime User

Ok, per la chiusura del programma ho usato il tuo suggerimento e funziona perfettamente. Grazie
 

marco.canta

Active Member
Licensed User
Longtime User

Per il "Kiosk Mode" ho difficoltà, l'ultimo aggiornamento che ho trovato risale al 2017 e l'esempio allegato non funziona ...
Attualmente uso questo codice che funziona e mi ha messo a fullscreen l'app, ma quello che a me occorre, è che messa in esecuzione l'app nessuno la possa chiudere.
B4X:
Sub Activity_Create(FirstTime As Boolean)
    Activity_WindowFocusChanged(True)
    Dim lv As LayoutValues = GetRealSize
    Dim jo As JavaObject = Activity
    jo.RunMethod("setBottom", Array(lv.Height))
    jo.RunMethod("setRight", Array(lv.Width))
    Activity.Height = lv.Height
    Activity.Width = lv.Width
    
    
    Activity.LoadLayout("1")
End Sub


Sub GetRealSize As LayoutValues
    Dim lv As LayoutValues
    Dim p As Phone
    If p.SdkVersion >= 17 Then
        Dim ctxt As JavaObject
        ctxt.InitializeContext
        Dim display As JavaObject = ctxt.RunMethodJO("getSystemService", Array("window")).RunMethod("getDefaultDisplay", Null)
        Dim point As JavaObject
        point.InitializeNewInstance("android.graphics.Point", Null)
        display.RunMethod("getRealSize", Array(point))
        lv.Width = point.GetField("x")
        lv.Height = point.GetField("y")
    Else
        lv.Width = 100%x
        lv.Height = 100%y
    End If
    lv.Scale = 100dip / 100
    Return lv
End Sub

Qualche altro suggerimento ?

Grazie Marco
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…