如何通过代码防止安卓上的自动屏幕锁定



在我的应用程序中,加载过程很长,如果设备打开屏幕锁定,我的进程会因某种原因停止。

如何防止设备自动屏幕锁定?

另一种无需在最强大的人中请求权限即可保持屏幕锁定的方法是:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

您是否在 UI 线程中执行长时间的加载过程?有些事情似乎不对劲 - 如果进程太长以至于屏幕锁定超时并且您的进程结束,也许它需要在后台服务中。

你必须在AndroidManifest上声明这个使用权限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

在您的代码活动中:

PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");
wakeLock.acquire();

请记住,在应用程序暂停或销毁时,请通过执行以下操作来释放此锁:

wakeLock.release();

通常,建议在活动的 onResume() 中调用 get 方法,在 onPause() 中调用 release 方法。通过这种方式,我们保证我们的应用程序在暂停或恢复的情况下仍然表现良好。

XML 方式:

只需在父布局中使用keepScreenOn属性:

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:keepScreenOn="true">

编程:

您可以通过添加标志以编程方式设置它:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();

在安卓清单中:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

点击此链接

一个尚未提及的有趣选项是

View#setKeepScreenOn(boolean onOff)

方法。这实际上可以在应用程序运行时的任何时候动态使用,例如,根据应用程序状态设置屏幕模式

以下行允许你的手机在应用处于前台时处于打开

状态
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

以下说明允许我们在按下锁定按钮时禁用锁定屏幕。KeyguardLock 类在 API 级别 13 中已弃用

/*onCreate*/
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); // Deprecated :/
lock.disableKeyguard();

在您的清单中:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

使用钥匙保护代码,它工作得很好,

只需将代码粘贴到主活动文件中的onCreate方法中,然后安卓清单文件中的权限

相关内容

  • 没有找到相关文章

最新更新