Home » AIR »Android »AS3 »Class » Currently Reading:

Detectar la conexión 3G o Wifi en aplicaciones AIR para Android

junio 3, 2011 AIR, Android, AS3, Class 3 Comments
Detectar la conexión 3G o Wifi en aplicaciones AIR para Android

Es probable que en una aplicación para teléfono móvil nos interese saber si estamos conectando a la red a través de la conexión 3G o a través de WIFI, para ejecutar diferentes acciones, permitir descargas de contenido etc.. O simplemente para saber si disponemos de conexión a internet o no.

Con la clase NetworkInfo de =http://www.cristalab.com/tags/airAIR 2[/url] nos permite acceder a todos los accesos a la red que tenemos disponibles en el dispositivo. Cada uno de ellos estará incluido en un objeto NetworkInterface con la propiedad active en valor true o false según sea el acceso en uso.

La siguiente clase que muestro es un ejemplo de uso:

Supongamos que tenemos un MovieClip con tres fotogramas. En el primero tendremos un icono para el estado “sin conexión”, en el segundo un icono para 3G, y el tercero un icono para Wifi.

Ahora nos interesará que el MovieClip nos muestre el fotograma que indica que tipo de conexión estamos utilizando en nuestro dispositivo móvil.

Esta sería la clase para asignar al MovieClip:

  1. package com.cristalab.controls.mobile
  2. {
  3.     import flash.display.MovieClip;
  4.     import flash.events.Event;
  5.     import flash.net.NetworkInfo;
  6.     import flash.net.NetworkInterface;
  7.     //------------------------------------------------------
  8.     public class NetworkInterfaceUI extends MovieClip
  9.     {
  10.         private var ni:NetworkInfo = NetworkInfo.networkInfo;
  11.         public var active:String = "none";
  12.         //------------------------------------------------------
  13.         public function NetworkInterfaceUI()
  14.         {  
  15.             ni.addEventListener(Event.NETWORK_CHANGE,checkNetworkInterface);
  16.             checkNetworkInterface();   
  17.         }
  18.         private function checkNetworkInterface(event:Event = null):void
  19.         {
  20.             var interfaceVector:Vector.<NetworkInterface > = ni.findInterfaces();
  21.             for each (var item:NetworkInterface in interfaceVector)
  22.             {
  23.                 active = (item.active == true) ? item.name : active;
  24.             }
  25.             switch (active)
  26.             {
  27.                 case "mobile" :
  28.                     this.gotoAndStop(2);
  29.                     break;
  30.                 case "WIFI" :
  31.                     this.gotoAndStop(3);
  32.                     break;
  33.                 default :
  34.                     this.gotoAndStop(1);
  35.                     break;
  36.             }
  37.         }
  38.     }
  39. }

Como podemos ver estamos guardando todas las NetworkInterfaces disponibles en un vector y realizamos una comprobación de cual es la que está activa.

Tambien detectamos los cambios en la red para actualizar nuestro icono.

Listo!

Compártelo:

Detectar la conexión 3G o Wifi en aplicaciones AIR para Android
Visto 7.715 veces

Currently there are "3 comments" on this Article:

  1. ZhangQian dice:

    this is not supported for IOS system

  2. Crainden dice:

    Tambien funciona para flash?? o como podría comprobar la conexión en un swf

Comment on this Article:








Twitter: zguillez

AdvertisementAdvertisementAdvertisementAdvertisement

Recibe las novedades por email



Map

Ranking

Codigoactionscript.org: 4.65 sobre 5 (106 valoraciones)

twitter-widget.com