Android 打开锁屏上方的活动

Android 打开锁屏上方的活动,android,Android,我曾尝试在Android Pie的锁屏上打开活动,但我无法打开。 我在Android清单和我搜索的适当活动和权限上添加了showWhenLocked和turnScreenOn,但无法在手机的默认锁定屏幕上打开活动。要帮忙吗 主要活动 if (Build.VERSION.SDK_INT >= 27) { setShowWhenLocked(true); setTurnScreenOn(true); } else { getWindow(

我曾尝试在
Android Pie
的锁屏上打开
活动
,但我无法打开。 我在Android清单和我搜索的适当活动和权限上添加了
showWhenLocked
turnScreenOn
,但无法在手机的默认锁定屏幕上打开活动。要帮忙吗

主要活动

if (Build.VERSION.SDK_INT >= 27) {
        setShowWhenLocked(true);
        setTurnScreenOn(true);
    } else {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    }
安卓清单

android:showWhenLocked=“true”
android:turnScreenOn=“true”
android:showOnLockScreen=“true”
android:excludeFromRecents=“true”


只需在“活动”中重写要在锁定屏幕上打开的以下方法

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
            WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}
并将以下标记添加到清单中的活动中

android:excludeFromRecents="true"

下面是我的工作方法,在activity的setContentView()之前从onCreate()调用它

同时在AndroidManifest文件中为您的活动设置下面的标志

android:showOnLockScreen="true"
/** *允许呼叫屏幕显示在锁定屏幕上 */


改进你的问题,并在这里分享你已经尝试过的代码。请检查此链接-不适用于我。API 26-27中不推荐使用某些LayoutParam。我研究并说使用setShowWhenLocked(true)setTurnScreenOn(true),但它对我也不起作用。@GleysonAbreu我已经更改了方法实现。请检查这是否有助于你不为我工作。API 26-27中不推荐使用某些LayoutParam。我研究并说使用setShowWhenLocked(true)setTurnScreenOn(true),但它对我也不起作用。嘿,你找到解决方案了吗?
private fun allowOnLockScreen() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setShowWhenLocked(true)
        setTurnScreenOn(true)
        val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
        keyguardManager.requestDismissKeyguard(this, null)
    } else {
        this.window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)
    }
}