2013-01-16 76 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。