【发布时间】:2013-11-18 09:32:04
【问题描述】:
我的音频流应用程序仅使用 WifiLock 即可正常工作。
但一些设备报告说,当它们关闭屏幕时,连接被切断并且音频流被置顶。 (他们说这不会发生在 3G 上)
所以,我想也许我也可以使用 Partial WakeLock。我不确定这是否能解决问题,但我认为这是一种选择。同时,在基本 WifiLock 工作时添加 WakeLock 可能会更快耗尽电池并且可能无法解决问题。
对于此类问题和应用程序,您如何考虑添加 WakeLock?
private static WifiLock wifiLock = ((WifiManager) appInstance().getSystemService(Context.WIFI_SERVICE))
.createWifiLock((android.os.Build.VERSION.SDK_INT>=12?WifiManager.WIFI_MODE_FULL_HIGH_PERF:WifiManager.WIFI_MODE_FULL), "myappwifilock");
新增的一行:
private static WakeLock wakeLock= ((PowerManager) appInstance().getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "myappwakelock");
(当然,我在创建服务和销毁服务时获取和释放这些锁。)
【问题讨论】:
-
它们是不同的东西。 Partial WakeLock 保持 CPU 运行,而 WiFiLock 保持 WiFi 无线电开启。 WakeLock w/o WifiLock 也能开启 Wi-Fi,但需要一段时间(30 秒到 1 分钟)才能再次连接到网络,所以第一次连接很可能会失败。
-
所以我“必须”添加我在 WakeLock 问题中提到的代码行?
-
@Mr_and_Mrs_D 我只在几个模型 OS 4.x 上测试过它,但这似乎是部分锁定和屏幕锁定的情况。问题是,正如我所说,Wi-Fi 直到稍后(重新连接时间)才完全连接。
-
@MisterSmith:不要依赖这个 - 这是我唤醒它的方法 - 重新连接肯定不需要 1 -1,5 分钟 - (大约 4 秒) - 但我主动调用重新连接等:stackoverflow.com/a/19968708/281545
标签: android android-wifi android-wake-lock