2011-12-19 118 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(); 
    } 
} 
相关问题