【问题标题】:Can I wake up my Android when it is unplugged and sleeping?我可以在拔掉电源并处于睡眠状态时唤醒我的 Android 设备吗?
【发布时间】:2025-11-30 01:50:01
【问题描述】:

我制作了一个应用程序,可以让人们收听收音机并实现了闹钟,这样我就可以在闹钟响起时播放收音机。我正在使用alarmManager 和RTC_wakeup,如果手机已插入或手机没有睡着(哪种方式违背了目的),它似乎工作正常。但是,当手机拔掉电源并进入睡眠状态时,直到我唤醒手机后闹钟才会响起。

有人知道解决办法吗?

【问题讨论】:

  • 您的应用程序是如何组成的?您使用什么来响应警报通知(活动、服务、广播接收器等)。当你说它在插入时工作时,我猜你在应用程序 - > 开发设置中启用了“保持清醒” - 这不是最终用户通常会拥有的。
  • AlarmManager alarmService = (AlarmManager) getOwnerActivity().getSystemService(Context.ALARM_SERVICE); alarmService.set(AlarmManager.RTC_WAKEUP, 今天, pendInt);有趣的是,它在我物理睡眠时起作用(按电源按钮使其睡眠),但如果它自己睡眠(在空闲后),那么它似乎要等到我唤醒它才能调用意图

标签: java android alarmmanager sleep-mode


【解决方案1】:

我们就是这样做的,它在您描述的两种情况下都有效:

PendingIntent pi = null;

private void startMonitor() {
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Intent i = new Intent(this, OnTickReceiver.class);
    pi = PendingIntent.getBroadcast(this, 0, i, 0);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
            System.currentTimeMillis() + 120 * 1000, 120 * 1000, pi);
}

private void stopMonitor() {
    AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(pi);
}

【讨论】:

  • 是“getBroadcast”还是“setRepeating”产生了影响?
  • 我不知道 kyle 是如何做到的,但是是的,setRepeating 是关键,尽管您还需要未决意图。
最近更新 更多