几年前,我写了一个适用于Android 2的闹钟应用程序,我现在正尝试将其升级到适用于Android 4.的功能,特别是在三星Galaxy S4上.
在Android 2上,如果手机正在睡眠,它会唤醒手机并在锁定屏幕上显示"贪睡或关闭"屏幕.
在Android 4上,它会唤醒手机,但您必须将其解锁,然后打开通知区域,然后单击闹钟的通知,然后才能点击"关闭".
我一直在使用这段代码来唤醒:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
关于此事,我已经阅读了8个不同的stackoverflow问题.他们中的大多数都给出了上面的代码,这在几年前在Android 2中起作用,但在Android 4中不起作用.但是他们都没有帮助我解决这个问题.以下是我阅读和尝试过的问题:
Android:以编程方式删除或禁用Samsung Galaxy S2设备上的锁定屏幕
有没有人对Android 4中可能导致此问题的变化有任何想法?
编辑:这是我见过的一个最简单的例子,它没有出现"最小化"的警报对话框.它没有像写的那样出现在锁屏上,但是你可以用它来修复它WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
它是用FragmentActivity和DialogFragment编写的,但它仍然可以作为Activity使用.它使用AlertDialog.Builder来创建对话框,如果您尝试使用XML布局,它将无法工作.为什么?
android lockscreen android-alarms android-notification-bar android-activity
我想以disable/delay编程方式锁定屏幕.在调查这个,KeyguardManager折旧/不一致,FLAG_DISMISS_KEYGUARD不是一个选项,因为我想在后台执行此操作,我不想因为电池原因使用WakeLock,设备管理似乎没有能力并且,虽然SCREEN_OFF_TIMEOUT可以控制屏幕何时休眠,但我无法找到屏幕锁定的类似超时.
我在这里错过了什么?谢谢.
我将我的应用程序注册为设备管理员,具有相应的锁定屏幕权限.我可以访问锁定设备的方法,但无法禁用锁屏.
是否有可用于禁用锁定的API方法?