2010-11-22 36 views
4

J'ai besoin de suggestion sur la gestion de quelques scénarios Wifi dans mon application.Surveillance du WiFi sur le périphérique Android

Supposons que mon application est en cours d'exécution et que le périphérique reste inactif pendant un certain temps et qu'il est passé en mode veille. En mode veille, le wifi est automatiquement désactivé. Maintenant encore, lorsque l'appareil est ramené du mode veille, il faut un certain temps pour activer l'état Wifi. Maintenant, si pendant ce temps, le service d'arrière-plan de l'application effectue une requête http, comment gérerons-nous ce scénario?

OU

suppose que si Wifi est pas disponible, appareil tente de se connecter au GPRS/3G et si au cours de cette période si le service utilisateur/arrière-plan est fait la demande http, la façon dont nous traitons dans le code?

Répondre

2
  1. Vous pouvez lister les interfaces réseau, leur type et leur état de la connectivité:

    Obtenez toutes les interfaces réseau:

    NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo(); 
    

    vérification type d'interface réseau

    networkInfo.getType() == ConnectivityManager.TYPE_MOBILE // or TYPE_WIFI 
    

    vérification de l'état contre NetworkInfo.State

    networkInfo.getState() == NetworkInfo.State.CONNECTED 
    
  2. Si vous avez besoin d'une connexion, vous pouvez:

    a. Vérifiez l'état du réseau comme décrit ci-dessus.

    b. Enregistrez un Receiver pour obtenir les informations de mise à jour lorsque la connectivité réseau change: Intent action for network events in android sdk

  3. Si vous essayez d'obtenir des données HTTP alors qu'il n'y a pas de connectivité, vous obtiendrez une exception. Vous pouvez attraper ceci et réessayer plus tard, mais l'option 2. est meilleure.