安卓手机睡眠时保持wifi连接

时间:2014-02-25 20:50:45

标签: java android android-wifi

我正在创建网络应用,它会在一段时间后将心跳发送到服务器。我的问题是移动设备处于“睡眠模式”,一段时间后连接被公开(可能是因为关闭了wifi)。因此,当app无法发送心跳时,它也会断开连接。

现在如何避免关闭wifi。

我尝试了'WIFI_SLEEP_POLICY_NEVER'WifiManager.WIFI_MODE_FULL等等。

但没有任何作用? 有人解决了这个问题吗?如果有任何真实的例子,我会很高兴。

提前谢谢

重新编辑: 我用过的wifi管理员代码。

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
Lock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "LockTag");
lock.acquire();

2 个答案:

答案 0 :(得分:1)

[解决]

int pol = android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER;
                android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, pol);

我使用PowerManager api和上面的代码&终于它解决了。

final PowerManager p = (PowerManager) getSystemService(Context.POWER_SERVICE);
l = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "newTAG");
l.acquire();

&安培;为了释放这个锁,我重写onDestroy()。 (注意:虽然,不推荐。不应使用onDestroy进行发布,而应使用onPause() - 根据文档)

答案 1 :(得分:0)

最近我试过了,

int pol = android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER;
                android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, pol);

除HTC手机外,它的工作正常。

这有什么理由吗?