Ich muss feststellen, welchen Verbindungstyp ein Gerät verwendet. Unterscheidung zwischen WIFI und 3G scheint kein Problem auf iOS (mit der NetworkInfo ANE) und Android (mit der nativen NetworkInfo-Klasse) zu sein, aber ich habe keine Ahnung, wie man weiter zwischen einem schnellen (3G, 4G) und langsame (EDGE) Verbindung. Gibt es eine Möglichkeit, dies mit Adobe Air zu tun?Adobe Air - Erkennen, ob die Verbindung WIFI, 3G oder EDGE ist
Antwort
Try this for Mobile vs. Wifi auf iOS zu erkennen. Dies erfordert die native Adobe-Erweiterung „Network“
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);
Ich weiß nicht, ob es eine Lösung eine direkte Lösung gibt, aber wenn Sie eine Datei herunterladen, können Sie die Geschwindigkeit, mit der die Datei heruntergeladen wird, mit GetTimer-Funktion in Verbindung mit geladenen Bytes und einem Verhältnis der gesamten Bytes.
Beispiel
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 der Theorie, wo die mobile Verbindung stabil ist, könnten Sie das tun, aber da sogar 3G-Netze alles andere als stabil sind (in Betracht ziehen Unter einer Brücke oder zwischen hohen Gebäuden, wo 3G wahrscheinlich auf EDGE fallen kann) müssten Sie die Datei ständig herunterladen, um die Verbindungsgeschwindigkeit zu überprüfen. Nicht wirklich praktisch. Mein Workaround wäre, meinen Push-Mechanismus in Mobilfunknetzen komplett zu löschen und zu einem Polling zu wechseln. Nicht sehr nett, obwohl eine stabile 3G-Verbindung für Daten schnell genug ist. – AlBirdie
Nizza ... wenn es funktioniert ... Keine Ahnung, ob es eine Lösung, die eine direkte Lösung, aber wenn Sie eine Datei herunterladen können Sie die Geschwindigkeit überprüfen, an denen Datei wird heruntergeladen, durch Verwendung von getTimer-Funktion in Verbindung mit geladenen Bytes und einem Verhältnis der gesamten Bytes
- 1. Wifi vs. Edge/3G und KomponentenSeparatedByString (NSString)
- 2. Wie bestimmt man den iOS-Verbindungstyp (Edge, 3G, 4G, Wifi)?
- 3. Was ist Adobe Air?
- 4. Erkennung von 3G oder Wifi Netzwerkwiederherstellung
- 5. Erkennen, ob Wifi eingeschaltet ist - iOS
- 6. iphone wifi/3G Verbindung fallen Probleme
- 7. Prüfen, ob Mobilgerät WIFI oder Data/3G verwendet
- 8. Gibt es eine Möglichkeit zu erkennen, welche Art von Verbindung ich verwende? WiFi, 3G oder Ethernet?
- 9. Wie zu bestimmen, ob Benutzer auf Edge oder 3G auf iPhone ist
- 10. Benutzerverbindung 3g, 4g, Wifi oder Lite mit Hilfe von PHP
- 11. WiFi/3G-Änderungen beobachten
- 12. Adobe AIR - Vollbild/Anzeige
- 13. Webservice-Anruf funktioniert nicht nach dem Wechsel zwischen Wifi zu 3G oder 3G zu Wifi
- 14. Wie erkennt man die mobile Verbindung ist 2G/3G/WIFI mit Javascript
- 15. Wenn Netzwerktyp wifi zu 3g ändern, Web-Service-Verbindung Zeitüberschreitung
- 16. WiFi oder mobiles Netzwerk erkennen
- 17. Adobe AIR mit PHP/MySql oder SQLite
- 18. Adobe AIR Programm ausführen
- 19. Adobe Air Fragen/Ressourcen
- 20. Adobe Air und .NET
- 21. Adobe Air Sockets und SSL
- 22. Wie starte ich Adobe Air-Anwendung ohne Adobe Air Player?
- 23. Adobe Air - Anwendung Updater
- 24. Adobe Air - Transparente Stufe
- 25. Adobe Air - Verbesserte Startzeit
- 26. Adobe Air http Auth
- 27. Wie erkennt man, ob der Benutzer 3G/Wifi aktiviert hat, bevor eine URL-Verbindung hergestellt wird?
- 28. Adobe AIR, Speicherverluste
- 29. Adobe AIR copyTo
- 30. ADOBE AIR FÜR Android
Das sieht vielversprechend aus! Vielen Dank dafür! Irgendwelche Ideen, wenn es etwas Ähnliches für Android-Geräte gibt? – AlBirdie