2013-01-16 78 views
3

我正在为我的学校开发一个简单的应用程序,它会向您显示网站的最新更新,但检查互联网连接似乎是AIR中的一个小问题。AIR for Android检查互联网连接问题(动作3)

我会更具体:

  • 我使用的Adobe Flash CS6开发应用程序(使用Android的AIR)

  • 该应用程序包含一个菜单,以及“互联网框架“,其中的代码没有真正的工作。我已经尝试了一些东西:URLMonitor(如可用= true),URLLoader(如果它没有互联网连接时发生IOError)和类似HTMLLoader(很久以前:P,没有成功)

  • 该URLLoader工程“很好”,但我也需要知道,如果网页只是不可用(404),当有一个活动的互联网连接,但在任何情况下,它只会抛出相同的“流错误”,所以我可以区分它们。这就是为什么它不适合我的需求。

  • 的URLMonitor也作品“精”,但这里涉及到的问题:

当在模拟器上测试应用程序,它可以在不出现问题检测,没有互联网连接。但是,导出到.apk并运行在我的android设备上时,它将无法成功检测到互联网连接。

这里是我的代码:

var monitor:URLMonitor = new URLMonitor(new URLRequest("http://www.google.nl")); 
monitor.addEventListener(StatusEvent.STATUS, netConnectivity); 
monitor.start(); 

function netConnectivity(e:StatusEvent):void 
{ 
    if(e.target.available) 
    { 
     //checking the content 
     output_txt.text += "\ninternet available"; 
     loader = new URLLoader(new URLRequest(webURL)); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorLoader); 
     loader.addEventListener(Event.COMPLETE, onCompleteLoader); 
    } 
    else 
    { 
     // 
     // 
     //  NO INTERNET CONNECTION AVAILABLE! 
     // 
     // 
     output_txt.text += "\nno internet available"; 
     popupnoconnection_mc.alpha = 100; 
     popupnoconnection_mc.play(); 
     popupnoconnection_mc.addEventListener(MouseEvent.MOUSE_DOWN, BackToMenu); 
    } 
    monitor.stop(); 
} 

正如你所看到的,它增加了一个事件侦听到URLMonitor,开始检查和功能检查互联网连接的可用性。在仿真器上工作,不适合在我的设备上工作。

更有意思的是: 什么是我的设备上工作,是当互联网连接。它只会显示我的输出字段中的文本,但不会在没有Internet连接时显示! 此外,当设置互联网连接启动应用程序,然后进入这个框架,然后回到主菜单,然后关闭互联网,然后再次进入这个框架,这个代码突然很好的工作!

所以它必须做一些创建URLMonitor,并在同一帧检查连接,我想,但我需要一个小手在这里!

我觉得这不能太难!

非常感谢你提前! (对不起,错别字)

+0

URLMonitor并不复杂。它通过定期尝试访问URL来工作。似乎可以想象,移动设备在知道没有连接时可以规避这种机制。由于它依赖于HTTP请求失败,所以当没有连接时,设备根本没有任何http请求。 –

+0

谢谢,我只会追查“没有互联网连接?!”如果尝试访问该页面的时间太长,则向用户提供。再次感谢您的时间 – Niessie9

回答

0

您可以使用NetworkInfo来检测是否有互联网连接 - 它适用于Android。