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

API standards et tierces Android Discussion :

Maintenir le Bluetooth en mode veille


Sujet :

API standards et tierces Android

  1. #1
    Invité
    Invité(e)
    Par défaut Maintenir le Bluetooth en mode veille
    Bonjour à tous et meilleurs vœux,

    J'ai une appli développée en Qt que j'ai portée sous android. Le résultat est pas mal, mais mon problème concerne le Bluetooth et le mode veille.

    Mon problème survient quand la tablette passe en veille, je perds la connexion avec la carte d’acquisition que j’interroge pour me fournir des valeurs de température toutes les secondes.

    Ma tablette est une Samsung galaxy tab A de 2016 sous android 7.0.

    Ma question : comment forcer ou paramétrer la tablette/ou l'appli pour qu'elle ne désactive pas le Bluetooth en mode veille ?

    Merci.
    Dernière modification par dinobogan ; 10/01/2018 à 16h34.

  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
    ------

    L'idéal est d'utiliser un service

    Sinon tu perdras la connexion lorsque ton appli n'est plus active, ne te laissant comme possibilité alternative que d'empêcher ta tablette de se mettre en veille tant que tourne ton application.

    Claude

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut Claude,

    Merci pour ton retour.

    L'utilisation de Qt en C++ conduit à un portage en java de ce code. Je ne maitrise donc pas ce qui est utilisé.

    Peut-tu m'en dire plus sur la classe java ou autre à utiliser pour mettre un service en place.
    Je pourrai peut-être réorienter mon code C++ pour cela.

    merci

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Maintenir une connexion bluetooth pendant le mode veille n'est pas une bonne pratique et va à l'encontre du Doze mode qui empèche les application de le faire.

    Quand ton appli est lancée et au premier plan , pas de problème tu peux être connecté. Pour le reste du temps , comme l'utilisateur interagie pas avec son appareil ou ton appli les connexions devrait être fermée et éventuellement déclencher de manière périodique via L'AlarmManager si tu as besoin de mettre à jour les informations.
    Le but la derrière étant les économie de batterie.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par grunk Voir le message
    Maintenir une connexion bluetooth pendant le mode veille n'est pas une bonne pratique et va à l'encontre du Doze mode qui empèche les application de le faire.

    Quand ton appli est lancée et au premier plan , pas de problème tu peux être connecté. Pour le reste du temps , comme l'utilisateur interagie pas avec son appareil ou ton appli les connexions devrait être fermée et éventuellement déclencher de manière périodique via L'AlarmManager si tu as besoin de mettre à jour les informations.
    Le but la derrière étant les économie de batterie.
    Merci grunk,

    Je ne remets pas en cause les économies d'énergie, c'est vraiment une bonne chose que ce genre de limitation existe.

    Mais mon application échange une trame de commande (Activation ou non d'un élément Peltier) et reçoit les valeurs des sondes de températures en retour de la carte déportée via Bt.
    L'acquisition est réalisée toute les secondes et dure 10 minutes en moyenne.

    Donc, je dois garder la connexion ouverte au moins durant le temps de la mesure.

    Je regarde de plus prêt ton lien, et peut-être une refonte de l'architecture pour utiliser AlarmManager.

    merci

  6. #6
    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
    Maintenir une connexion bluetooth pendant le mode veille n'est pas une bonne pratique et va à l'encontre du Doze mode qui empèche les application de le faire.
    Quand ton appli est lancée et au premier plan , pas de problème tu peux être connecté. Pour le reste du temps , comme l'utilisateur interagie pas avec son appareil ou ton appli les connexions devrait être fermée
    C'est vrai mais c'est la façon de procéder classique et générique qui ne concerne qu'un logiciel qui, comme 99% des applications standard, est basé sur l'interaction avec l'utilisateur, et dans l'optique que l'économie de batterie est prioritaire sur le maintien de la communication: Ce n'est pas obligatoirement le cas de toutes les applications. Ça l'est du reste rarement des miennes.

    Par exemple j'ai une appli domotique qui doit impérativement continuer de communiquer même si le périphérique est en veille, et donc obligation de maintenir la communication à tout prix. L'activité principale ne sert que pour éventuellement stopper manuellement le service ou pour afficher des rapports. J'en ai une autre qui communique avec un périphérique distant en wifi et qui doit rester continuellement active, la batterie n'ayant aucune importance vu que la tablette est fixée au mur et reliée au secteur.

    MDstatice a demandé comment maintenir la communication, il avait peut-être également de bonnes raisons de la maintenir. J'avoue ne pas m'être intéressé au "pourquoi" mais seulement au "comment"

    et éventuellement déclencher de manière périodique via L'AlarmManager si tu as besoin de mettre à jour les informations.
    AlarmManager est basé sur les services, c'est pour ça qu'il fonctionne en mode veille (du moins je pense, je ne l'ai pas étudié spécifiquement).
    Le service est la solution pour communiquer même en mode veille, et, quitte à utiliser un service, autant qu'il crée le sien spécifique (vu le type d'application), ce ne sera pas plus gourmand en énergie qu'AlarmManager et ça lui permettra un contrôle plus fin de la gestion de la communication.

    Ce n'est évidemment que mon avis, mais en ce qui me concerne je n'utilise pratiquement Android que pour des applications de communication avec des périphériques externes, et c'est comme ça que je procède si je dois maintenir la communication avec l'appareil en veille. L'alternative étant, comme j'ai précisé, d'empêcher la veille de l'appareil, je fais ça uniquement si on doit maintenir un écran visible en plus de la communication, par exemple un panneau de contrôle d'éléments physiques ou un affichage permanent de statut (surveillance active etc)
    Comme il précisait que son appareil pouvait passer en veille sans problème, le service me semble LA solution à adopter.

    A+
    Claude

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci Claude pour ton retour,

    Après lecture de différentes sources d'infos, je pense que la mise en place d'un service correspondrait bien à mon besoin.

    Maintenant, il faut que je trouve le moyen de le mettre en place à partir de mon code C++/Qt : là ça va être plus compliqué !!

  8. #8
    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
    Maintenant, il faut que je trouve le moyen de le mettre en place à partir de mon code C++/Qt : là ça va être plus compliqué
    Je ne peux pas t'aider sur ce point, je ne connais pas du tout, je ne peux te donner des infos sur la façon de procéder qu'en Java ou en Kotlin

  9. #9
    Invité
    Invité(e)
    Par défaut
    Si tu as un petit exemple sous la main, je suis preneur.
    Plus par curiosité, et voir si je peux peut-être intégrer le code natif au sein de l'appli Qt ??

    merci

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Guide développement sur les services : https://developer.android.com/guide/.../services.html
    Doc de la classe service : https://developer.android.com/refere...p/Service.html

    Les services c'est un sujet assez vaste (avec plein de type de service différent).

    A priori les service ne sont disponible qu'à partir de QT 5.7 : https://doc.qt.io/qt-5.10/androidservices.html
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Invité
    Invité(e)
    Par défaut
    Je vais pouvoir mettre en résolu, sans pour autant proposer de solution technique, car il y a pas mal d'investigation à réaliser.
    merci encore pour toutes vos informations.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/08/2010, 14h05
  2. [Easy Peasy] Erreur sortie mode veille
    Par fanf64 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 06/10/2009, 18h19
  3. suspendre le mode veille
    Par nodarp dans le forum VB.NET
    Réponses: 3
    Dernier message: 18/02/2009, 00h21
  4. mode veille puis restart obliger ?
    Par boolat dans le forum Mandriva / Mageia
    Réponses: 5
    Dernier message: 07/05/2008, 10h50
  5. application avec mode veille
    Par boulhous dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/01/2007, 16h09

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