我正在尝试获取一个唤醒锁,但是当我调用PowerManager.newWakeLock()时,我收到了一个IlleglArgumentException。
下面是我用来获取
private void setWakeLock(Context context)
{
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
SoundAlarmActivity.WakeLock = pm.newWakeLock(
PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "Alarm");
SoundAlarmActivity.WakeLock.acquire();
}下面是logcat:
09-28 12:53:09.704: ERROR/AndroidRuntime(702): java.lang.IllegalArgumentException
09-28 12:53:09.704: ERROR/AndroidRuntime(702): at android.os.PowerManager$WakeLock.<init>(PowerManager.java:223)
09-28 12:53:09.704: ERROR/AndroidRuntime(702): at android.os.PowerManager.newWakeLock(PowerManager.java:365)发布于 2010-09-28 21:06:36
试试这个:
private void setWakeLock(Context context)
{
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
SoundAlarmActivity.WakeLock = pm.newWakeLock(
PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "BusSnoozeAlarm");
SoundAlarmActivity.WakeLock.acquire();
}PowerManager.ACQUIRE_CAUSES_WAKEUP不能处理部分唤醒锁,所以在定义你想要的唤醒锁类型时,你必须确保你使用的是FULL_WAKE_LOCK。
发布于 2010-09-28 21:07:46
你应该定义你想要的“种类”的唤醒锁。您给出的两个标志只是对级别的补充:
[WakeLock level] Flag Value | CPU | Screen | Keyboard
-----------------------------------------------------
PARTIAL_WAKE_LOCK | On* | Off | Off
SCREEN_DIM_WAKE_LOCK | On | Dim | Off
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off
FULL_WAKE_LOCK | On | Bright | Bright注意:从API级别17开始,除PARTIAL_WAKE_LOCK以外的其他唤醒级别都被弃用,您应该改用LayoutParams.FLAG_KEEP_SCREEN_ON。
https://stackoverflow.com/questions/3812919
复制相似问题