我需要確定設備正在使用哪種連接類型。 WIFI和3G之間的區別似乎並不(使用NetworkInfo ANE)和Android(使用本機NetworkInfo類)是iOS上的問題,但我有不知道如何快速(3G,4G)之間的進一步區分和慢(EDGE)連接。 有沒有辦法用Adobe Air來做到這一點?Adobe Air - 檢測連接是WIFI,3G還是EDGE
9
A
回答
13
嘗試此在iOS檢測移動與無線網絡連接。這就需要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);
0
我不知道,如果有一個解決一個直接的解決方案,但是,當你下載一個文件,你可以檢查在該文件被下載,通過與加載字節數和總字節數的比例結合使用getTimer函數的速度。
例
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
從理論上講,在移動連接是穩定的,你能做到這一點,但考慮到即使3G網絡是什麼,但穩定(考慮去在橋下,或3G可能會降至EDGE的高層建築之間),您必須不斷下載文件以檢查連接速度。不太實際。我的解決方法是完全放棄移動網絡上的推送機制並轉到輪詢。不是很好,但作爲穩定的3G連接對於推送數據來說非常快。 – AlBirdie 2012-03-27 06:13:28
0
尼斯...如果它的工作原理......說不上來,如果有一個解決一個直接的解決方案,但是,當你下載一個文件,你可以檢查的速度,文件被下載,通過與加載的字節一起和總字節數的比率使用getTimer函數
相關問題
- 1. Adobe Air。檢查createDirectory()是否完成
- 2. Adobe Edge HTML5本地連接
- 3. Adobe Edge workin?
- 4. Adobe AIR剪貼板檢測
- 5. Adobe AIR:檢測en_GB語言環境
- 6. Adobe Air - 檢測JavaScript事件
- 7. 如何檢測移動連接是使用javascript的2G/3G/WIFI
- 8. Adobe Flex和Air連接到網絡
- 9. Adobe AIR中的連接限制?
- 10. Adobe AIR-與socket.io連接問題
- 11. localToGlobal Adobe AIR
- 12. Adobe AIR檢測ADL中是否運行?
- 13. 在android上檢查互聯網連接是通過Wifi還是通過GSM/3G?
- 14. Adobe Air是否支持KEEP ALIVE /持久HTTP連接
- 15. Adobe Edge Animate&PhoneGap
- 16. Adobe Edge-no preloader
- 17. Adobe Air Browser
- 18. Adobe Air - Analytics
- 19. Adobe AIR readLine
- 20. Adobe air http auth
- 21. Adobe Air和PHP
- 22. Adobe AIR截圖
- 23. Adobe Air和Dropbox
- 24. Adobe Air SQLite誤解
- 25. Adobe Air是完全免費的嗎?
- 26. Adobe Air是否支持RTMFP?
- 27. Adobe Air Javascript API
- 28. Adobe Air的DeviceOrientationEvent
- 29. Adobe AIR鎖定
- 30. Adobe Air with Iphone
看起來很有希望!非常感謝你!任何想法,如果有類似的Android設備? – AlBirdie 2012-04-19 07:20:55