Je suis entrain de faire un systeme de notification sur mon app. En gros, lorsque l'appli a du nouveau, une notification apparait sur l'écran de l'utilisateur.
Donc j'ai fais une classe MesNotifs qui fait une requetes sur un serveur web toutes les 5 mins pour savoir si l'appli a un truc de nouveau ou non. Ensuute en fonction de la reponse, je creer ou non une notification.
Mais le probleme c'est que pour que ca marche, il faut que l'appli soit toujouts ouverte (toujours entrain de tourner). Or, quand je faire mon appli, elle s'arrête. Donc pas très pratique...
Ce n'est vraiment pas une bonne pratique, tu vas exploser la batterie de ton utilisateur ! D'autant plus qu'à partir d'Android O, les services ont des limitations pour justement empêcher ce genre de choses !
Dans le cadre des notifications, ce n'est pas au téléphone de vérifier auprès du serveur s'il y a des nouveautés mais au serveur de communiquer avec le service FCM qui lui même réveillera l'application pour lui signifier qu'il convient d'afficher une notification. C'est beaucoup moins couteux d'un point de vue batterie !
Ne t'inquiète pas trop pour ça... Si le FCM tombe en panne c'est l'intégralité des terminaux sous Android qui ne recevront plus de notifications... 100% des applications des gros éditeurs passent par FCM. Il s'agit de la façon de faire pour les notification.
Donc j'ai testé sur un nouveau projet, mais j'ai un petit soucis d'affichage du token. Voilà ce que j'ai fais :
Je me suis connecté à firebase : https://firebase.google.com/ avec mon compte google, puis j'ai cliquer sur Get Started. J'ai configurer mon projet avec : le nom de l'appli, le nom du package, la clé sha1 de mon projet.
Ensuite, dans android studio, dans la partie tools => firebase, j'ai configurer l'onglet : Cloud Messaging (j'ai laissé firebase configurer tous les fichiers graddle avec un bouton auto)
Ensuite, j'ai créer le fichier : FirebaseIdService :
public class FirebaseIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d("PRINT TOKEN", "Refreshed token: " + refreshedToken);
}
}
Lorsque j'éxécute mon application, je n'ais aucune erreur, mais je ne vois pas dans le logcat le PRINT TOKEN... Alors que normallement je devrais le voir, non ?
Ce token ne s'affiche pas systématiquement. Si par exemple si as exécuté une fois l'application avant de faire ta log, le token ne s'affichera plus. Si tu veux forcer l'affichage, il convient par exemple de supprimer les données et le cache de ton application ou de la désinstaller et de la réinstaller.
Le token est spécifique à chaque terminal. Tu ne le trouveras donc pas dans la console firebase. C'est à ton application mobile de le communiquer à ton serveur à chaque rafraichissement pour qu'ensuite tu l'enregistres et puisse envoyer ta notification à tous les terminaux.
Mais je croyais que l'appli mobile ne faisait aucun raffrachissement est qu'elle "tait simplement réveillé par la fcm lorsqu'il y avait une nouvelle notification du serveur
Sans ce token, je pense que tu envoies ta notification a TOUS les téléphones sur lesquels l'application est installée. Ce qui signifie que les utilisateurs ne peuvent pas empêcher la réception de la notification.
C'est souvent un motif de désinstallation.
La bonne pratique est de n'envoyer la notification qu'à ceux qui souhaitent vraiment les recevoir.
Par contre j'ai un soucis. Si je vais dans les paramètres de l'application et que je clique sur "Forcer l'arrêt", je ne reçois plus de notification
Systeme de notification android studio
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog
Mon site - Mon livre sur le XML - Mon blog