IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Creer un service android au demarrage


Sujet :

Android

  1. #1
    Invité
    Invité(e)
    Par défaut Creer un service android au demarrage
    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

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Salut
    -----

    Dans le manifest, tu dois déclarer ton intent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    <action android:name="android.intent.action.BOOT_COMPLETED"></action>
    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
    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>
    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
    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))
              .....
             ......
    Le code ci-dessus est en Kotlin, si tu travailles en Java tu dois juste un peu adapter la syntaxe.

    A+
    Claude

  3. #3
    Invité
    Invité(e)
    Par défaut
    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

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Et après avoir créé tout cela, je dois compiler et redémarrer le smartphone ?
    Oui.
    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

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    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" />

Discussions similaires

  1. Creer un service Web client
    Par roudoudouduo dans le forum Services Web
    Réponses: 6
    Dernier message: 08/04/2011, 16h33
  2. Creer A service (client microsoft)
    Par Willy97 dans le forum VBScript
    Réponses: 11
    Dernier message: 04/03/2008, 11h48
  3. Comment créer un service par SMS
    Par thesorrow dans le forum Réseau
    Réponses: 6
    Dernier message: 30/10/2006, 22h38
  4. créer un service windows
    Par t_om84 dans le forum Général Python
    Réponses: 1
    Dernier message: 19/04/2006, 11h26
  5. [installation] creer un service pour une bdd
    Par Chafaq dans le forum Oracle
    Réponses: 1
    Dernier message: 25/01/2006, 12h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo