我正在创建网络应用,它会在一段时间后将心跳发送到服务器。我的问题是移动设备处于“睡眠模式”,一段时间后连接被公开(可能是因为关闭了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();
答案 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手机外,它的工作正常。
这有什么理由吗?