gpt4 book ai didi

android - FLAG_TURN_SCREEN_ON 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:38 26 4
gpt4 key购买 nike

我有一个内部注册加速度计的服务。当识别出特定的摇动模式时,服务会使用此代码启动一项 Activity 。

Intent launchIntent = new Intent("my.package.MAIN_ACTIVITY");
LaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(LaunchIntent);

onCreate 中,我使用此代码 fragment 解锁手机并打开屏幕:

Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON|
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

如果用户有时不与 Activity 交互,我将使用此代码关闭显示:

Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

如果在显示 Activity 时显示屏关闭并且手机锁定,并且我重复摇动模式,则会调用 onStart 方法。我尝试输入与上面相同的开机和解锁代码,但它不起作用(显示未打开)。

可能是什么问题?

最佳答案

我设法解决了这个问题。开始我的 Activity 时,我使用 WakeLock:

PowerManager pm = ((PowerManager) getSystemService(POWER_SERVICE));
screenLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG");
screenLock.acquire();

此代码将防止屏幕关闭。但在那之后我启动了一个延迟几秒钟的计时器,它禁用了 WakeLock:

if(screenLock.isHeld()) {
screenLock.release();
}

关于android - FLAG_TURN_SCREEN_ON 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com