Bonjour,
J'ai programmé une application android et j'aimerais créer un service qui se lancerait au démarrage du smartphone sans lancer l'application.
Pourriez vous me dire si je peux faire cela et comment le faire ?
Cordialement
Bonjour,
J'ai programmé une application android et j'aimerais créer un service qui se lancerait au démarrage du smartphone sans lancer l'application.
Pourriez vous me dire si je peux faire cela et comment le faire ?
Cordialement
Salut
-----
Dans le manifest, tu dois déclarer ton intent:
Ensuite, toujours dans le manifest, tu dois créer un Broadcast receiver lié à l'évènement en question, avec le filter correspondant et l'intent:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <action android:name="android.intent.action.BOOT_COMPLETED"></action>
puis dans ton code, tu crées le Broadcast receiver qui lance ton sercice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <!-- Déclaration du BroadcastReceiver --> <receiver android:name=".Builder.ServerBroadcastReceiver"> <!-- Et de son filtre --> <intent-filter> <!-- Les actions à renvoyer vers le BroadcastReceiver --> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> </receiver>
Le code ci-dessus est en Kotlin, si tu travailles en Java tu dois juste un peu adapter la syntaxe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class ServerBroadcastReceiver : BroadcastReceiver() { override fun onReceive(p0: Context?, p1: Intent?) { if (p0 != null && p1 != null) { when (p1.action) { // Le boot de l'appareil est terminé, on peut lancer le service CentralServiceME Intent.ACTION_BOOT_COMPLETED -> p0.startService(Intent(p0, CentralServiceME::class.java)) ..... ......
A+
Claude
D'accord, merci beaucoup.
Et après avoir créé tout cela, je dois compiler et redémarrer le smartphone ?
Car après avoir créé les différents éléments du service, android studio me met une erreur lors de la compilation : client not ready yet.
Auriez vous une idée de ce que je dois faire ?
Cordialement
Oui.Et après avoir créé tout cela, je dois compiler et redémarrer le smartphone ?
En ce qui me concerne, j'ai créé une activité très basique avec un bouton "start service" et un bouton "stop service".
Comme ça, quand je débogue, je lance l'activité comme une activité normale et je lance le service avec "start". Ça permet de déboguer plus facilement.
Si tu rebootes alors le service se lance tout seul, c'est le fonctionnement "normal".
J'ai même d'autres évènements qui lancent le service automatiquement, comme la connexion d'un device USB spécifique: Je connecte le device, le service démarre.
Et évidemment si tu as une erreur à la compilation ça ne peut pas fonctionner, tu as du commettre une erreur quelque part, mais personnellement je n'ai pas rencontré ce problème.
Par contre j'ai vu que sur le net on parlait beaucoup de cette erreur, tu devrais donc trouver des renseignements aisément à ce sujet.
A+
Claude
Oups, j'ai mis deux fois la même ligne: La première étape, c'est la permission d'utilisation, et non la déclaration que j'avais déjà mise plus bas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <!-- On doit déclarer la permission d'utilisation de réception de l'intent de boot terminé --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Partager