0

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

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

他只会做一次。

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

一周的每一天;

永远,

无需人工干预(当然手机/平板电脑必须打开并插上电源)。

我的担忧如下:

alarmmanger是否能够在早上真正唤醒设备以开始活动(播放视频)而无需用户进行任何交互?

巧妙的使用建议

    WindowManager wm = Context.getSystemService(Context.WINDOW_SERVICE);
    Window window = getWindow();  
    window.addFlags(wm.LayoutParams.FLAG_DISMISS_KEYGUARD);

在 Eclipse 中给了我很多错误:

在此处输入图像描述

4

3 回答 3

6

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

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

    wl.release();

这是我的实现:用于设置警报

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

广播接收器:

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();
于 2013-07-09T08:52:05.730 回答
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);

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

同样在设备重新启动时,您需要重置警报

于 2013-07-09T09:05:54.087 回答
1

是的,如果您使用ELAPSED_REALTIME_WAKEUPRTC_WAKEUP作为警报类型,它会的。

于 2013-07-09T08:50:59.033 回答