Android:Android AlarmManager可以唤醒设备执行预定任务吗?

时间:2013-07-09 08:45:50

标签: android alarmmanager

我需要制作一个应用程序来设置本周的日历,

基本上,用户将输入一周中每天的活动的开始时间和结束时间。

他只会做一次。

在设置之后,应用程序(我将使用AlarmManager)将在设定的小时开始他的活动(持续播放视频)并完成设定的小时:

一周中的每一天;

永远,

没有人为干预(当然必须打开手机/平板电脑并接通电源)。

我关注的是:

alarmmanger是否可以在早上启动设备以启动活动(播放视频)而无需用户进行任何互动?

使用

的聪明建议
    WindowManager wm = Context.getSystemService(Context.WINDOW_SERVICE);
    Window window = getWindow();  
    window.addFlags(wm.LayoutParams.FLAG_DISMISS_KEYGUARD);

在Eclipse中给我带来了很多错误:

enter image description here

3 个答案:

答案 0 :(得分:6)

是的你我可以尝试类似的东西,但不完全..我试着每天上午9点调用设备来下载我使用这段代码的内容

PowerManager pm = (PowerManager) context
            .getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(
            PowerManager.PARTIAL_WAKE_LOCK, "");
    wl.acquire();

    wl.release();

这是我的实施:   用于设置Alaram

 AlarmManager am = (AlarmManager) context
            .getSystemService(Context.ALARM_SERVICE);
     Calendar calendar = Calendar.getInstance();
     calendar.setTimeInMillis(System.currentTimeMillis());
     calendar.add(Calendar.MINUTE, 10);
     calendar.add(Calendar.SECOND, 00);
     //alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
     am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*1, pi);

BroadcastReciever:

Register BroadcastReciever:
PowerManager pm = (PowerManager) context
            .getSystemService(Context.POWER_SERVICE);
    PowerManager.WakeLock wl = pm.newWakeLock(
            PowerManager.PARTIAL_WAKE_LOCK, "");
    wl.acquire();
    // Put here YOUR code.

    Intent startAutoSyncService = new Intent(context,
            AppoinmentService.class);
    context.startService(startAutoSyncService);

    wl.release();

答案 1 :(得分:2)

是警报是gd选项。如果设备被锁定,请使用密码锁解除..

 Window win = getWindow();
        win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);

        win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);

在发出警报时&启动您在调用警报时想要的视频/音频活动或屏幕

设备重启您需要重置闹钟

答案 2 :(得分:1)

是的,如果您使用ELAPSED_REALTIME_WAKEUPRTC_WAKEUP作为闹钟类型,则会这样做。