The support forum is temporarily read-only. For urgent requests, please email contact[at]psyberia.net

Intents et Foreground Service

Ici, c'est en Français...
Post Reply
Yanoh
Posts: 3
Joined: Mon Jun 26, 2023 1:15 pm

Intents et Foreground Service

Post by Yanoh »

Bonjour,
Le contexte :
Un appareil externe au système concentre des données de géolocalisation de plusieurs balises et les rend disponible grâce au Bluetooth Low Energy.
Sur un smartphone ou tablette un "foreground service" s'occupe de gérer la partie Bluetooth Low Energy, récupère et décode les trames pour les injecter dans Alpine Quest grâce aux "Intents". Les "Intents" mettent à jours les repères sur la carte.
Pour info, J'ai installé la dernière version d'Alpine Quest Pro

Les questions :

1) Dans Alpine Quest : à chaque mise à jour des données (qui peut être à 1 sec), donc des repères, un flicker des tuiles est visible comme si l'ensemble de l'écran est redessiné. Est ce qu'il existe un moyen d'éviter cela ?
2) En fonction de l'ordre de lancement des applications, Alpine Quest ne réagit pas au "Intents" (AQ se lance mais les repères ne sont pas mis à jour) alors que mon "foregroud service" continue à en émettre et je ne m'explique pas pourquoi, avez-vous une idée ?
Psyberia-Support
Site Admin
Posts: 6407
Joined: Wed Apr 14, 2010 9:41 pm

Re: Intents et Foreground Service

Post by Psyberia-Support »

Bonjour,
Pour le point 1, il doit y avoir une re-génération des tuiles impactées, si vous affichez seulement 1 point, normalement seulement la tuile correspondante est mise à jour, mais si vous ajoutez vos points à une trace par example, la zone a mettre à jour peut être bien plus grande. Après je ne sais pas si le "flicker" dont vous parlez est lié à cela ou non, ou si vous pensez que c'est vraiment quelque chose d'anormal...
Pour le point 2, lorsque l'appli ne réagit pas, ouvrez les logs pour voir si elle a bien reçut l'Intent (menu principal -> Plus -> Rapport d'erreur -> fichier Application.log.
Vous devriez vois plusieurs message en lien avec les intent reçus, en particulier un message du type "new valid location from 'null': ..." ou "new valid command location: " (en fonction du type de vos intents).

Puis-je vous demandez pourquoi vous utilisez des Intents pour envoyez les positions à AlpineQuest et non à travers le framework "Mock locations" de Android? Dans ce cas vous pouvez même utiliser l'enregistreur de trace pour enregistrer vos positions.

Cordialement
Do you like AlpineQuest ? Leave a small comment on Google Play !
Yanoh
Posts: 3
Joined: Mon Jun 26, 2023 1:15 pm

Re: Intents et Foreground Service

Post by Yanoh »

Bonjour,
Merci pour le retour rapide,
Pour le point 1 :
pour préciser un peu plus, j'affiche un groupe de repères, plus de 10 sur la carto d'Alpine Quest et pour chaque repère, il s'agit de l'emplacement d'une balise de géolocalisation. Lorsque la mise à jour des positions des balises se fait (au maximum toutes les secondes) il y a autant d'Intents que de repères et c'est la que l'on peut apercevoir certaines tuiles se redessiner, même pas forcément celles qui ont un repère.

Pour le point 2, je vais regarder les log pour essayer de comprendre mon soucis.

Je ne connais pas le framework "Mock Locations" mais il me semble qu'il permet d'envoyer une position GPS autre que celle fournie par le smartphone, mais je ne vois pas très bien dans mon cas comment cela peut fonctionner ?

Cordialement
Yanoh
Posts: 3
Joined: Mon Jun 26, 2023 1:15 pm

Re: Intents et Foreground Service

Post by Yanoh »

Bonjour,
Voici avec une image capturée sur mon smartphone de l'effet furtif de l'affichage des tuiles "décalées"

Cordialement
Attachments
20230630_153811.jpg
(582.5 KiB) Not downloaded yet
Psyberia-Support
Site Admin
Posts: 6407
Joined: Wed Apr 14, 2010 9:41 pm

Re: Intents et Foreground Service

Post by Psyberia-Support »

Merci pour la capteur d'écran, effectivement je vais voir si je peux corriger cela.
Do you like AlpineQuest ? Leave a small comment on Google Play !
Psyberia-Support
Site Admin
Posts: 6407
Joined: Wed Apr 14, 2010 9:41 pm

Re: Intents et Foreground Service

Post by Psyberia-Support »

Bonjour,
D'après mes tests ce problème d'affichage est dû à l’accélération graphique lorsqu'il y a beaucoup de rafraîchissements successifs de la carte.
Vous pouvez tester en désactivant temporairement l'accélération graphique de la carte avec ce user setting (dispo dans la dernière version beta 2.3.5c.r8295):

Code: Select all

map.canvas.disable_ha=true
Après avoir redémarrer l'appli, si les effets disparaissent, alors c'est confirmé.
Si c'est bien le cas, une première solution serait d'envoyer les intents de manière successive, et non en même temps si possible.
Une seconde solution est de réduire le nombre de rafraîchissements, par exemple avec cet autre user setting, ce qui réduira peut être l'effet indésirable:

Code: Select all

map.canvas.tiles.fade_delay_ms=0
Dans tous les cas je ne vous conseil pas de garder l'accélération graphique désactivée, des problèmes d'affichages peuvent apparaître ailleurs.
Do you like AlpineQuest ? Leave a small comment on Google Play !
Post Reply