我有一个运行前台服务的 Android 应用程序,当该服务正在运行时,我想为用户提供保持屏幕打开的选项。
我在我的设置首选项中添加了一个复选框首选项,如果为真,我想保持屏幕打开,但默认情况下将其设置为关闭。这正是我的用户所要求的。目前我有偏好,但当我运行该服务时,我的屏幕仍然关闭,这是我所做的
全局变量
private static final String PREFS_DEVICE = "DeviceInfo";
代码和if语句
SharedPreferences settings = getSharedPreferences(PREFS_DEVICE, 0);
if(settings.getBoolean("screenPref", false)) {
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
this.mWakeLock.acquire();
}
然后我将其添加到我的 list 中
<uses-permission android:name="android.permission.WAKE_LOCK" />
我做错了什么吗?是否有不同的方法可以通过服务执行此操作,或者只是不可能通过服务执行此操作(希望不是这种情况)。
最佳答案
您可以使用标志 FLAG_KEEP_SCREEN_ON
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
当你不想继续的时候
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
关于Android 在应用程序中保持屏幕开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342767/