2012-03-26 26 views

Odpowiedz

13

Spróbuj wykrywania Telefon komórkowy w porównaniu z WiFi iOS. To wymaga Adobe natywną rozszerzenie „NetworkInfo”

import com.adobe.nativeExtensions.Networkinfo.InterfaceAddress; 
import com.adobe.nativeExtensions.Networkinfo.NetworkInfo; 
import com.adobe.nativeExtensions.Networkinfo.NetworkInterface; 

var vNetworkInterfaces:Object; 
if (flash.net.NetworkInfo.isSupported) 
{ 
    vNetworkInterfaces = getDefinitionByName('flash.net.NetworkInfo')['networkInfo']['findInterfaces'](); 
    mytrace("fall 1"); 
} 
else 
{ 
    vNetworkInterfaces = getDefinitionByName('com.adobe.nativeExtensions.Networkinfo.NetworkInfo')['networkInfo']['findInterfaces'](); 
    mytrace("fall 2"); 
} 

var hasWifi: Boolean = false; 
var hasMobile: Boolean = false; 

for each (var networkInterface:Object in vNetworkInterfaces) 
{ 
    if (networkInterface.active && (networkInterface.name == "en0" || networkInterface.name == "en1")) hasWifi = true; 
    if (networkInterface.active && (networkInterface.name == "pdp_ip0" || networkInterface.name == "pdp_ip1" || networkInterface.name == "pdp_ip2")) hasMobile = true; 

    mytrace("active: " + networkInterface.active); 
    mytrace("displayName: " + networkInterface.displayName); 
    mytrace("name: " + networkInterface.name); 
    mytrace("hwAddress: " + networkInterface.hardwareAddress); 
    mytrace("--------------------"); 
} 

mytrace("has Mobile Internet: " + hasMobile); 
mytrace("has Wifi Internet: " + hasWifi); 
+2

To wygląda obiecująco! Dziękuję ci bardzo za to! Wszelkie pomysły, jeśli jest coś podobnego na urządzenia z Androidem? – AlBirdie

0

Nie wiem, czy istnieje rozwiązanie, ale kiedy pobierasz plik, możesz sprawdzić szybkość pobierania pliku, używając funkcji getTimer w połączeniu z załadowanymi bajtami i współczynnikiem całkowitej liczby bajtów.

Przykład

function init() 
{ 
    startTime = getTimer(); 
    loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoaderInit); 
    loader.load("some-site.com/myasset.png"); 
} 

function onLoaderInit(e:ProgressEvent) 
{ 
    $timePassed = (getTimer() - startTime) * 0.001; //it's in millisecounds convert to secounds 
    $newBytes = loader.contentLoaderInfo.bytesLoaded - oldBytes; 
    var $rate:Number = $newBytes * $timePassed; //returns a value of bytes per sec. 
    startTime = getTimer(); 
    oldBytes = loader.contentLoaderInfo.bytesLoaded;  
} 
+0

Teoretycznie, jeśli połączenie mobilne jest stabilne, można to zrobić, ale biorąc pod uwagę, że nawet sieci 3G nie są stabilne (rozważmy pod mostem lub pomiędzy wysokimi budynkami, gdzie 3G może spaść do EDGE) musisz ciągle pobierać plik, by sprawdzić szybkość połączenia. Niezbyt praktyczne. Moim obejściem byłoby całkowite zrzucenie mechanizmu pchania w sieciach komórkowych i przejście do głosowania. Niezbyt przyjemne, ale jako stabilne połączenie 3G szybko można przesłać dane. – AlBirdie

0

Nicea ... czy to działa ... Nie wiem, czy istnieje rozwiązanie bezpośredni rozwiązanie, ale kiedy jesteś pobierania pliku można sprawdzić szybkość, z jaką plik jest pobierany za pomocą funkcji getTimer w połączeniu z załadowanymi bajtami i współczynnikiem całkowitej liczby bajtów