2011-12-19 106 views
0

我正面臨着一個奇怪的問題,當我在設備上運行我的android應用程序時,它會在前臺或背景上運行,它不應該失去WiFi連接,因爲我已經獲得了WiFiManager並獲得了Service的onCreate()方法中的鎖定,並通過onDestroy方法釋放它。但是,當設備進入睡眠模式時,面臨的問題是要保持WiFi打開狀態,所以即使設備進入睡眠模式,也沒有辦法使WiFi開啓。 我無法獲取鎖來喚醒設備,因爲場景是我們的應用程序將始終運行,所以無論用戶何時不使用,設備都應該進入睡眠模式,但應始終打開WiFi連接。當設備進入睡眠模式時WiFi鎖不起作用

請幫我解決這個問題,請分享一些示例代碼。

問候, 皮克斯

回答

1

嘗試使用服務。只需在服務中插入wifi連接代碼,這將永遠在後臺運行。

+0

我使用無線上網的代碼中的服務,但仍當設備進入睡眠模式,Wifi連接得到lost.So能否請你分享一些代碼示例如何使用WiFi連接內部服務。 – piks 2011-12-19 11:08:18

+1

是的,你必須進入seettings,在WiFi下,然後按菜單按鈕。現在會彈出一個高級菜單,將您的WiFi睡眠策略設置爲永遠不會。默認設置爲睡眠,所以你想改變它。 – 2011-12-19 12:11:39

+0

好的,所以我知道我們不能以編程方式覆蓋WiFi設置,我們需要更改設備上的設置才能執行這些場景。 – piks 2011-12-20 03:06:16

0

也許這將幫助..

private void setNeverSleepPolicy() { 
    try { 
     ContentResolver cr = getContentResolver(); 
     if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN) { 
      int set = android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, set); 
     } else { 
      int set = android.provider.Settings.Global.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.Global.WIFI_SLEEP_POLICY, set); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
相關問題