手机处于深度睡眠状态时,警报不起作用

时间:2011-10-03 22:43:26

标签: android


我有一个完美的报警应用程序 除非电话深陷睡眠。
当真正入睡时,我的闹钟活动会在之后显示,用户会唤醒手机。我希望手机唤醒用户......

该应用程序直接从BroadcastReceiver启动我的AlarmAcivity。 (不是来自服务。)


一条线索:
记录D DeepSleepService :AlarmManager退出深度扫描
...

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);
}

1 个答案:

答案 0 :(得分:1)

我弄清楚我的代码出了什么问题:In正在访问BroadcastReceiver中的数据库。
这是一个坏/坏(正如文件所述)。它只是在长时间睡眠后出现的事实才使得虫子更难找到。