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 :

Notification : première instance d'une application


Sujet :

Android

  1. #1
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut Notification : première instance d'une application
    Bonjour à toutes et tous,

    Une petite question pour laquelle je ne parviens pas à trouver de réponse probante dans les documentations : la première instance d'une application (son premier lancement) qui dispose des notifications Firebase, passe-t-elle par la méthode onTokenRefreshed ?

    C'est le cas si je nettoie les fichiers de données, mais à la première utilisation, c'est aussi la même méthode ? J'ai l'impression que oui, mais c'est ce "Refreshed" qui me trouble, sans doute inutilement...

    Merci de vos avis.
    Selon les points de vue, on peut être un chic type ou juste un trou du c...

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    Je n'ai pas encore utilisé Firebase donc je ne peux répondre.
    Par contre je connais bien DbHelper si ça peut aider
    Si la réponse vous a aidé, pensez à cliquer sur +1

  3. #3
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    En fait, j'en ai pas mal sué avec Firebase, et je souhaite continuer avec. Mais comme dit, il me reste ce doute... En installant l'appli sur un nouveau poste ce matin, je n'ai pas réussi à enregistrer le token du premier coup.

    Maintenant, de mon expérience, Firebase, ça ne passe pas à tous les coups, de plus le poste était en Android 6, donc pas sûr que l'utilisateur ait bien donné toutes les autorisations du premier coup...

    Mais le doute est semé ! Et si mon appli ne communiquait pas le token à la première attribution ?... Je ferai des tests avec un Android 4 ou 5 qui n'a jamais reçu l'appli, mais si quelqu'un a déjà un début de réponse, il / elle est bienvenu(e)...
    Selon les points de vue, on peut être un chic type ou juste un trou du c...

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    J'avais lu un peu la doc Firebase il y a 2 mois.

    En fait tu dois enregistrer le token chez chaque client pour "l'abonner" à Firebase (ou au(x) service(s) Firebase) et être notifié..., c'est bien ça?
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    Mars 2012
    Messages
    1 969
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 969
    Points : 3 375
    Points
    3 375
    Par défaut
    D'après ce que je vois, tu peux avoir des problèmes si le service est mal défini dans le manisfest.
    L'événement ne sera pas rappeler lors d'un upgrade.

    Même problème:
    http://stackoverflow.com/questions/3...-is-not-called

    Solution (ici);
    http://stackoverflow.com/questions/3...ived-by-device

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <service
        android:name=".NotificationGenie">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
     
    </application>
    Si la réponse vous a aidé, pensez à cliquer sur +1

  6. #6
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    Salut,

    Désolé de ne pas avoir répondu plus tôt, l'actualité est parfois chargée...

    En fait, c'est un peu plus tordu que ça, mais le principe est bon :

    1 - Côté console Firebase, tu déclares un service de notification, au service de ton appli
    2 - Tu déclares dans ton appli (au manifest) qu'elle bénéfice du service des notifications.
    3 - Au premier lancement de l'appli, celle-ci récupère un token d'enregistrement aux notifications pour cette appli
    4 - Tu envoies ce token à ton serveur (celui qui comprend les données à transmettre),
    5 - Par la suite, quand tu veux notifier les utilisateurs qu'il y a du nouveau, tu envoies une demande de notification à firebase dans laquelle tu joins tous les tokens concernés.

    6 - Si ton token est modifié (tu as réinstallé l'appli, tu as supprimé le fichier de données...), tu passes alors par une méthode dite onTokenRefreshed(). C'est dans cette méthode que j'exécute le point 4 (envoi au serveur). Jusqu'ici, j'ai considéré que le point 3 (premier lancement) passait aussi par cette méthode... et c'est là que j'ai brusquement un doute !

    Comme dit, il faudrait que je fasse une installation "neuve" sur un poste en faisant très attention à savoir si je récupère dès le départ le token, mais je me demandais si quelqu'un avait d'emblée la réponse.

    Pour ce qui est de ce que tu transmets au Manifest, nous avons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <service
                android:name=".MyFirebaseMessagingService"
                android:exported="false">
                <intent-filter>
                    <action android:name="com.google.firebase.MESSAGING_EVENT"/>
                </intent-filter>
            </service>
            <service
                android:name=".CustomFirebaseInstanceIDService">
                <intent-filter>
                    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
                </intent-filter>
            </service>
    MyFirebaseMessagingService correspond au point 2, et au 5 quand les notifications arrivent.
    CustomFirebaseInstanceIDService correspond clairement au point 6 (c'est aussi là que se passe le 4). Mais cela correspond-il aussi au point 3 ?....
    Selon les points de vue, on peut être un chic type ou juste un trou du c...

  7. #7
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    Bon simple up pour dire que le sujet est résolu :

    la réponse est "oui, l'application passe par le onTokenRefreshed() dès le premier lancement".

    J'ai installé tout simplement l'application sur un poste "vierge" d'une quelconque installation préalable, et j'ai bien pu enregistrer le token de notification de l'utilisateur.

    C'est juste que le service n'est pas garanti à 100%. Du coup, parfois, ça ne passe pas. Dommage si c'est la première fois...
    Selon les points de vue, on peut être un chic type ou juste un trou du c...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Instance d'une application
    Par VILPELLET dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/08/2008, 11h46
  2. communication entre 2 instances d'une application access
    Par funkyjul dans le forum VBA Access
    Réponses: 11
    Dernier message: 11/04/2008, 07h23
  3. instance globale à une application
    Par nico_4802 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/11/2007, 09h44
  4. comment l'instance d'une application est reperée sous Windows
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/07/2007, 12h48
  5. Réponses: 5
    Dernier message: 22/09/2005, 10h15

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