2010-07-14 14 views
2

Par défaut, la stratégie de veille Wifi est "Veille sur écran inactif".Android Froyo et Wifi

Avec cette stratégie, est-il possible pour un service d'arrière-plan de réactiver le Wifi à l'aide d'API?

Lorsque j'essaie ce qui suit, mais ne fonctionne pas: Lorsque mon service d'arrière-plan se réveille, il appelle "ConnectivityManager.getActiveNetworkInfo()" pour obtenir un réseau actif. Depuis, la connexion sans fil est inactive, j'ai essayé de la réveiller en utilisant "WifiManager.startScan" sur une connexion Wifi précédemment utilisée. Mais toujours pas de connectivité Wifi.

Des idées? Je préfère ne pas changer ma politique de sommeil à "Jamais".

Merci Hemant

Répondre

0

Il n'y a pas de solutions simples réelles pour cela. Avec une probabilité élevée d'avoir une connectivité WIFI lorsque le téléphone/l'écran se met en veille, le meilleur moyen est de l'éteindre. Regardez ici pour beaucoup de détails - http://wififixer.wordpress.com/

Il est important de réaliser qu'en mode veille, le Wifi passe en mode basse consommation. Cela deviendra difficile à vérifier par programme car il pourrait avoir une connectivité au Wifi mais la connexion Wifi est trop faible ou trop lente pour terminer la requête HTTP et par conséquent, elle expire. Cela vous obligerait à vérifier également la vitesse de la connectivité Wifi ainsi que vous aurez un réseau actif, mais un assez moche.

Une gestion correcte de l'échappement lorsque le délai d'attente se produit pour l'appel HTTP que vous effectuez est acceptable, mais la seule façon d'avoir un thread d'arrière-plan en cours d'exécution n'est possible que lorsque le mode Wifi ne dort jamais .

C'est difficile et pas le meilleur moyen que je connaisse. :-(C'est pourtant le seul chemin que j'ai trouvé qui soit assez fiable