首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:使用警报唤醒设备

Android:使用警报唤醒设备
EN

Stack Overflow用户
提问于 2013-04-10 10:59:23
回答 2查看 5.1K关注 0票数 4

我使用折叠代码设置警报:

代码语言:javascript
复制
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);

当警报响起时,我执行相同的代码,显示一个新的活动和一个声音被复制。这很好,但如果我的设备处于睡眠模式,当警报响起时,我就能听到声音。没有显示任何活动,我的设备仍然处于睡眠状态。

当警报响起时,我能做些什么才能自动唤醒我的设备?

编辑:

我尝试了以下几点:

代码语言:javascript
复制
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();

除了这一点外,这似乎是可行的:

代码语言:javascript
复制
04-10 13:49:59.260: A/PowerManager(4292): WakeLock finalized while still held: TAG

此外,我亦就获取方法发出警告:

找到了wakelock获取(),但在任何地方都没有发布()呼叫

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-10 11:13:17

在您的Receiver活动中尝试下面的代码:

代码语言:javascript
复制
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);
票数 8
EN

Stack Overflow用户

发布于 2017-11-03 14:23:42

只是为了编辑一下,在Android4.4版本之后,setRepeating方法已经被废弃,他们已经引入了setInexactRepeating()

请通过此更新博客设置警报:https://developer.android.com/training/scheduling/alarms.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15923948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档