1

我们有一个与 PC 通信的工业控制应用程序。该应用程序可以在两种设备上运行——三星媒体播放器(就像没有手机的手机)和三星 Galaxy 10.1 平板电脑。

当显示超时时,我们遇到了 CPU 和 WiFi 关闭的问题,这会中断与 PC 的通信。如果用户放下设备,例如休息或去洗手间,显示屏会熄灭是可以的,这样可以节省电池电量,但我们希望 WiFi 仍然可以工作。所以我们添加了 . . .

private PowerManager.WakeLock wakelock;
private WifiManager.WifiLock wifilock;

...然后,在初始化期间,

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "CPUOnly");
wakelock.acquire();
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifilock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "WifiLock");
wifilock.acquire();

在清单中:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

这适用于媒体播放器。但平板电脑上的相同代码似乎没有效果 - 当显示屏熄灭时,WiFi 也会熄灭。媒体播放器运行 Android 2.3.5 (Gingerbread),平板电脑运行 Android 4.0.3 (Ice Cream Sandwich)。

知道为什么这在这两种设备上的行为会有所不同,以及我们可以做些什么来解决它?提前致谢!

4

0 回答 0