【发布时间】:2013-04-27 15:23:37
【问题描述】:
我有一个完美运行的闹钟应用程序
除非手机处于深度睡眠状态。
当真正睡着时,我的闹钟活动会在用户唤醒手机后显示。我想让手机唤醒用户...
应用程序直接从 BroadcastReceiver 启动我的 AlarmAcivity。 (不是来自服务。)
一条线索:
日志 D DeepSleepService:AlarmManager 退出 deepsleep
...
PowerManagerService: putReleasedWakeLock
PowerManagerService:*mAcquiredLocks 内容****
PowerManagerService:LockList 条目:flags=0x10000006 tag=com.solidllc.foo.WakeLock
PowerManagerService:LockList 条目:flags=0x1 tag=RILJ
PowerManagerService:LockList 条目:flags=0x1 tag=network-location
PowerManagerService: LockList 条目: flags=0xa tag=KEEP_SCREEN_ON_FLAG
PowerManagerService: putReleasedWakeLock --> 将部分唤醒锁移除到列表中,大小为 i
...
//
//我的清单:
android.permission.INTERNET
android.permission.WAKE_LOCK
android.permission.DEVICE_POWER
android.permission.DISABLE_KEYGUARD
Android自带的闹钟有以上加:“修改全局系统设置”和“检索正在运行的应用程序”。
有人知道可以做什么吗?
非常感谢。
这是设置闹钟的代码:
void armAlarm(int hour, int minute) {
Calendar alarmtime = new GregorianCalendar();
alarmtime.set(Calendar.HOUR_OF_DAY, hour);
alarmtime.set(Calendar.MINUTE, minute);
alarmtime.set(Calendar.SECOND, 0);
Intent intent = new Intent(RatActivity.this, AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(RatActivity.this, 0,
intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(pi);
am.setRepeating(AlarmManager.RTC_WAKEUP, alarmtime.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);
}
【问题讨论】:
-
请考虑将源代码发布到您安排警报的位置。
-
深度睡眠模式仅在某些设备(例如 Archos 平板电脑)上可用,并且在启用时它还会警告用户:“在深度睡眠中没有任何工作,包括警报”。普通安卓手机采用软睡眠(挂起)模式。
-
非常感谢。我刚刚测试了内置警报,当设备处于深度睡眠状态时它也不起作用(很好)。 (在“电话选项”菜单上,您可以选择“睡眠”,这会使 Moto Droid 进入深度睡眠。)我要解决的原始问题是,当电话长时间闲置时,我的闹钟不会响起时间;比如一整夜。如何让手机快速进入此(软睡眠?)模式以便调试?
标签: android