Italian Avvio automatico app

Fulvio75

Well-Known Member
Licensed User
Ciao per avviare un'applicazione in automatico all'avvio di android senza utilizzare le impostazioni di avvio del dispositivo come si fa? Ho provato diversi modi ed esempi ma non parte.
 

amorosik

Expert
Licensed User
1- Puoi farci vedere i metodi usati che non funzionano?
2- Cos'hanno le impostazioni di avvio di Android che non ti va bene?
 

Fulvio75

Well-Known Member
Licensed User
Cos'hanno le impostazioni di avvio di Android che non ti va bene?
Volevo evitare di usare il menù di avvio automatico del dispositivo, alcuni hanno questa opzione e altri no, per cui preferirei utilizzare del codice attraverso la mia app
 

Fulvio75

Well-Known Member
Licensed User
Mi correggo parte... con questo, ma non si chiude, nel senso che se la chiudo poi si riapre da sola

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #ExcludeFromLibrary: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub

Sub Service_Create
    'This is the program entry point.
    'This is a good place to load resources that are not specific to a single activity.
    
    StartActivity(Main)
    
End Sub

Sub Service_Start (StartingIntent As Intent)
    
    Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
    
End Sub

Sub Service_TaskRemoved
    'This event will be raised when the user removes the app from the recent apps list.
End Sub

'Return true to allow the OS default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
    Return True
End Sub

Sub Service_Destroy

End Sub
 

Fulvio75

Well-Known Member
Licensed User
ERA necessario e sufficiente StartAtBoot nel servizio Starter.
Anche ora con le B4XPages funziona, il problema è che se chiudi l'app questa dopo qualche secondo si riapre, mi sa che bisogna metterci un servizio aggiuntivo che funziona solo una volta poi si stoppa
 

LucaMs

Expert
Licensed User
Longtime User
Oggi sono particolarmente pigro, svogliato e inc.... to; ergo, mi affido al sempre... imperfettissimo ChatGPT 🤣 (poi fammi sapere se funzioni; di solito inventa librerie e/o metodi che non esistono, ma in questo caso, forse... chissà. Di certo nemmeno do mezza occhiata al suo sorgente!)

1710948055067.png


1710948081753.png

B4X:
Sub Process_Globals
    ' Questa è la chiave che identifica l'intento di avvio del dispositivo
    Dim ACTION_BOOT_COMPLETED As String
    ACTION_BOOT_COMPLETED = "android.intent.action.BOOT_COMPLETED"
End Sub

'Receiver evento di avvio del dispositivo
Sub Service_Start (StartingIntent As Intent)
    If StartingIntent.Action = ACTION_BOOT_COMPLETED Then
        'L'azione di avvio del dispositivo è stata ricevuta
        'Qui puoi avviare l'applicazione o eseguire altre azioni necessarie
        StartServiceAt(Me, DateTime.Now + 10000, False) 'Esempio: avvia il servizio dopo 10 secondi
    End If
End Sub

1710948130073.png


B4X:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

1710948220897.png


B4X:
<receiver android:name=".Boot">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</receiver>

1710948268530.png



[Così, se non dovesse funzionare, manderai "lui" a quel paese🤣]
 

Fulvio75

Well-Known Member
Licensed User
Ho provato con questo per il momento sembra funzionare:
Nuovo Servizio chiamato AutoStart dentro ho messo

B4X:
#Region  Service Attributes
    [B]#StartAtBoot: true[/B]
    
#End Region

Sub Process_Globals

    
End Sub

Sub Service_Create

  [B]  StartActivity(Main)[/B]
        
End Sub

Sub Service_Start (StartingIntent As Intent)
    
    Service.StopAutomaticForeground 'Call this when the background task completes (if there is one)
    
End Sub

Sub Service_Destroy

End Sub

con Android 9 funziona poi con altri non lo so devo provare, basta solo questo codice senza manifest e altre cose simili, parte al primo avvio del telefono poi non parte più fino allo spegnimento e al successivo riavvio... sembra semplicissimo
 

Fulvio75

Well-Known Member
Licensed User
Dimenticavo li c'è scritto StartActivity(Main) ma fa riferimento a Main di B4XPages e sottolineo B4XPages se no il capo Lucas si in...zza con me perchè utilizzo ancora le activity 🤣 🤣 🤣 🤣 🤣 🤣 🤣 🤣
 

Fulvio75

Well-Known Member
Licensed User
Non ho capito però perché starter viene richiamato quando chiudo l'app e quindi la riapre, mentre un servizio nuovo che creo parte solo all'avvio di android e poi non si ripete più
 

Fulvio75

Well-Known Member
Licensed User
B4X:
#Region  Service Attributes
    [B]#StartAtBoot: true[/B]
    
#End Region

Sub Process_Globals

    
End Sub

Sub Service_Create

  [B]  StartActivity(Main)[/B]
        
End Sub

Sub Service_Start (StartingIntent As Intent)
    
    Service.StopAutomaticForeground 'Call this when the background task completes (if there is one)
    
End Sub

Sub Service_Destroy

End Sub
 

Fulvio75

Well-Known Member
Licensed User
Questo sopra, funziona solo all'avvio di android ed è quello che ho bisogno.
Se uso starter chiudo l'app e dopo 5 secondi si riapre
 

Fulvio75

Well-Known Member
Licensed User
Scrivendoci le stesse cose e senza un modulo receiver?
Così come lo vedi funziona accendo il telefono e parte l'app dopo 10 secondi circa.
L'ho chiamato AutoStart.
Su android 9, devo provare sul 12 ma credo sia la stessa cosa.
 

LucaMs

Expert
Licensed User
Longtime User
Così come lo vedi funziona accendo il telefono e parte l'app dopo 10 secondi circa.
L'ho chiamato AutoStart
Sì, lo avevo capito, ma hai detto:
Se uso starter chiudo l'app e dopo 5 secondi si riapre
Questo ti succede se scrivi quello stesso codice nello Starter (ovviamente senza un altro servizio)? E senza aggiungere un modulo receiver?
 
Top