我使用折叠代码设置警报:
Intent intent = new Intent(context, Receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(reminderContext, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis()+delay,pendingIntent);当警报响起时,我执行相同的代码,显示一个新的活动和一个声音被复制。这很好,但如果我的设备处于睡眠模式,当警报响起时,我就能听到声音。没有显示任何活动,我的设备仍然处于睡眠状态。
当警报响起时,我能做些什么才能自动唤醒我的设备?
编辑:
我尝试了以下几点:
PowerManager pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = pm.newWakeLock((PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();
KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
keyguardLock.disableKeyguard();除了这一点外,这似乎是可行的:
04-10 13:49:59.260: A/PowerManager(4292): WakeLock finalized while still held: TAG此外,我亦就获取方法发出警告:
找到了wakelock获取(),但在任何地方都没有发布()呼叫
发布于 2013-04-10 11:13:17
在您的Receiver活动中尝试下面的代码:
Window wind;
wind = this.getWindow();
wind.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
wind.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
wind.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);发布于 2017-11-03 14:23:42
只是为了编辑一下,在Android4.4版本之后,setRepeating方法已经被废弃,他们已经引入了setInexactRepeating()。
请通过此更新博客设置警报:https://developer.android.com/training/scheduling/alarms.html
https://stackoverflow.com/questions/15923948
复制相似问题