Devo determinare quale tipo di connessione sta utilizzando un dispositivo. La distinzione tra WIFI e 3G non sembra essere un problema su iOS (usando lo NetworkInfo ANE) e Android (usando la classe nativa di NetworkInfo) ma non ho idea di come distinguere ulteriormente tra un veloce (3G, 4G) e connessione lenta (EDGE). C'è un modo per farlo con Adobe Air?Adobe Air - Rileva se la connessione è WIFI, 3G o EDGE
risposta
Prova questo per la rilevazione mobile vs. Wifi su iOS. Ciò richiede l'estensione nativa di Adobe "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);
Non so se esiste una soluzione diretta, ma quando si scarica un file è possibile controllare la velocità di download del file, utilizzando la funzione getTimer in combinazione con i byte caricati e un rapporto tra byte totali.
Esempio
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;
}
In teoria, dove la connessione mobile è stabile, è possibile farlo, ma dato che anche le reti 3G sono tutt'altro che stabili (prendere in considerazione l'andare sotto un ponte o tra edifici alti in cui è probabile che 3G possa passare a EDGE), devi scaricare costantemente il file per verificare la velocità della tua connessione. Non molto pratico. La mia soluzione alternativa sarebbe quella di abbandonare completamente il mio meccanismo di push sulle reti mobili e passare a un sondaggio. Non molto bello, anche se una connessione 3G stabile è molto veloce per i dati che vengono spinti. – AlBirdie
Nizza ... se funziona ... so se c'è una soluzione una soluzione diretta, ma quando si sta scaricando un file si potrebbe verificare la velocità con cui il file viene scaricato, utilizzando la funzione getTimer insieme ai byte caricati e un rapporto totale byte
- 1. Rileva se la connessione è wifi, 3G o EDGE in Android?
- 2. Rileva la connessione utente 3g, 4g, wifi o lite utilizzando php
- 3. Come forzare una connessione GPRS invece di 3G o Wifi?
- 4. Javascript Rileva se Adobe Reader è installato
- 5. Come determinare se l'utente è su Edge o 3G su iPhone
- 6. Verifica se il cellulare utilizza WIFI o Data/3G
- 7. Rileva se il wifi è attivato
- 8. Icone Adobe AIR 512x512?
- 9. Decompilazione applicazioni Adobe AIR
- 10. Come rilevare se l'utente ha il 3G/Wifi attivo prima di effettuare la connessione URL?
- 11. Silverlight vs Adobe Air
- 12. Qual è la differenza tra Adobe Edge Code e Brackets?
- 13. come controllare la rete wifi o 3G è disponibile su dispositivo Android
- 14. Android: è possibile avere connessioni 3G e Wifi contemporaneamente?
- 15. Accesso alla porta seriale in Adobe-Air
- 16. Indirizzi IP 3G/Edge/GPRS e geocodifica
- 17. Rileva se la connessione Firebase è persa/recuperata
- 18. C'è un modo per rilevare che tipo di connessione sto usando? WiFi, 3G o Ethernet?
- 19. Adobe AIR e iPhone - come funziona?
- 20. AIR, Flex - come verificare se la regex è valida
- 21. avvio di un'applicazione Adobe AIR più volte
- 22. Differenza tra Adobe AIR e FLEX?
- 23. Come riavviare un'applicazione autonoma Adobe Air/Flex
- 24. come installare adobe air sdk in linux?
- 25. iOS Rilevazione velocità di connessione o del tipo
- 26. Pensieri su Adobe AIR per Android?
- 27. Strumenti di sviluppo per Adobe Flex/AIR?
- 28. come testare il download e caricare la velocità wifi/3g?
- 29. È possibile eseguire un'app Adobe AIR senza installazione?
- 30. Come scaricare e decomprimere la cartella .ZIP usando Adobe Air?
Sembra promettente! Grazie mille per quello! Qualche idea se c'è qualcosa di simile per i dispositivi Android? – AlBirdie