在锁定屏幕上运行Android应用程序

时间:2013-12-07 06:27:04

标签: android youtube android-wake-lock

我正在尝试创建一个在特定时间播放Youtube视频的闹钟。当我使用唤醒锁时,它会使用以下代码在锁定屏幕后面播放Youtube视频:

PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "")

我希望应用程序唤醒手机并在锁定屏幕前播放Youtube视频,就像本机闹钟应用程序在锁定屏幕前响起一样。

有谁知道怎么做?谢谢!

2 个答案:

答案 0 :(得分:4)

您可以创建系统叠加层并在其上播放视频。创建服务并添加以下代码:

@Override
    public void onCreate() {
        super.onCreate();
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
               |WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.RIGHT | Gravity.TOP;
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(yourView, params);
    }

别忘了在清单中添加SYSTEM_ALERT_WINDOW权限。

编辑:您还可以试用TYPE_SYSTEM_ALERTTYPE_SYSTEM_ERROR代替TYPE_SYSTEM_OVERLAY

答案 1 :(得分:2)

即使屏幕被锁定睡眠,您也可以请求显示活动,将此添加到onCreate:

this.getWindow().addFlags(
                WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
                        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                        | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                        | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);