2016-06-26 4 views
1

Je travaille sur une application pour envoyer des données au serveur toutes les 20 minutes. Ici, j'ai trouvé une difficulté à cause de android idle mode. Au moment de idle mode l'accès au réseau a été désactivé pour les applications comme mentionné here. Donc, en ce moment, je ne peux pas communiquer avec le serveur. Donc, pour surmonter cela, j'ai trouvé FULL_WAKE_LOCK, ce qui permettra de libérer l'appareil du mode inactif. Mais en réalité, il va réveiller l'écran chaque fois que nous essayons d'envoyer des données. Nous n'avons donc pas besoin de ça. J'ai donc essayé avec PARTIAL_WAKE_LOCK, qui va réveiller le cpu avec l'écran éteint. Mais à ce moment le réseau a également désactivé. Donc, je ne peux pas envoyer les données.Quitter le mode veille sans utiliser l'écran de veille

J'ai beaucoup cherché. Mais je n'ai trouvé aucun bon article à ce sujet. Alors N'importe qui pourriez-vous s'il vous plaît me dire la façon programmatique de sortir du mode inactif sans réveiller l'écran.

Merci.

Répondre

1

Peut-être trop tard. https://stackoverflow.com/users/3049065/mahendran-sakkarai, j'avais une situation similaire, mais pour un système de suivi. Après un certain temps, tous mes services étaient en mode veille. J'ai essayé WhiteList, PartialWakeLock, ne fonctionne pas. ActivityRecognition et les LocationServices étaient en baisse depuis un bon moment.

La solution est allé enregistrer à travers un BroadcastReceiver avec un filtre pour intention PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED et appelant if(isDeviceIdleMode()) puis restart LocationUpdated. Cette solution de contournement forcé l'appareil à sortir du ralenti.

+1

Salut, j'ai le même problème. Pourriez-vous ajouter des liens ou des détails pour aider à élaborer? Merci! – forresthopkinsa