我需要确定设备正在使用哪种连接类型。 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