在锁屏顶部运行android应用程序



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

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

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

有人知道怎么做吗?谢谢

您可以创建一个系统覆盖并在上面播放视频。创建一个服务并添加以下代码:

@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权限。

EDIT:您也可以使用TYPE_SYSTEM_ALERTTYPE_SYSTEM_ERROR而不是TYPE_SYSTEM_OVERLAY进行实验。

即使屏幕被锁定在睡眠状态,您也可以请求显示活动,将其添加到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);

相关内容

最新更新