我有一个夜间应用程序,我想在应用程序运行时禁用设备的键盘锁并且设备在充电器上。我们的想法是,如果您使用充电器并且此应用程序正在运行,那么假设您处于安全位置是合理的。当应用程序退出时(通过后面或家中),我不希望出现解锁屏幕,只是允许正常使用,就好像手机从不闲置超过设备的锁定时间。
目前我的应用程序使用FLAG_SHOW_WHEN_LOCKED窗口选项,它很好地保持屏幕开启和解锁,但当我回击或回家(锁定时间到期后)我得到解锁键盘屏幕以解锁设备。我希望在我的应用程序运行且设备在充电器上时防止其他应用程序发生锁定。我显然会将此功能设置为用户选择的设置,但如何实现此功能?
任何人都可以帮我解决这个问题 - 所有我的googleing努力都指向只保留我的应用程序锁定,但我已经解决了这个问题。
感谢。
答案 0 :(得分:0)
首先创建一个意图过滤器并监听充电器事件
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);
并在听众中
// Are we charging / charged?
int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1);
boolean isCharging = status == BatteryManager.BATTERY_STATUS_CHARGING ||
status == BatteryManager.BATTERY_STATUS_FULL;
if(isCharging) {
//disable keyguard
}
并在你的onPause()
中启用键盘锁
答案 1 :(得分:0)
非系统应用无法禁用键盘锁。您可以做的最好的事情是将您的应用设为administrator并增加锁定时间。然而,这可能被视为对时钟应用程序的可疑。此外,一旦用户退出您的应用,您通常无法控制其他应用或系统发生的情况,这就是Android的工作原理。我明白为什么在你按下主页键后突然被锁定的设备可能会感觉不自然,但我认为你无法做任何事情。