在我的应用程序中,我需要知道设备何时被锁定(在HTC上它看起来像短按“电源”按钮)。所以问题是:设备被锁定时触发哪个事件?或设备将要睡觉?如何揭示该屏幕被锁定?
9
A
回答
5
您应该扩展BroadcastReceiver
和实施onReceive
,像这样:
public class YourBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_SCREEN_OFF.equalsIgnoreCase(intent.getAction())) {
//screen has been switched off!
}
}
}
然后你只需要注册登记,当屏幕关闭时,你会开始接收事件:
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
appBroadcastReceiver = new AppBroadcastReceiver(yourActivity);
registerReceiver(appBroadcastReceiver, filter);
0
除了上述答案之外,如果您希望在应用处于前景时触发某些操作:
您可以使用事件称为的onResume()触发自己的功能,当你的应用程序需要的焦点从之前休息状态,也就是说,如果您的应用程序在后台(暂停/最小化......)
protected void onResume()
{
super.onResume();
//call user-defined function here
}
3
有一个更好的办法:
KeyguardManager myKM = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
if(myKM.inKeyguardRestrictedInputMode()) {
//it is locked
} else {
//it is not locked
}
+0
你尝试过isDeviceLocked为Android 5.1 http://developer.android.com/reference/android/app/KeyguardManager.html#isDeviceLocked()? – 2015-04-03 10:05:21
相关问题
- 1. 如何在sony smartwatch被锁定的情况下显示屏幕
- 2. 如何锁定屏幕?
- 3. 自定义锁定屏幕有时被股票锁定屏幕覆盖
- 4. 锁定屏幕
- 5. 锁定屏幕
- 6. 如何解锁锁定屏幕?
- 7. AppleScript的超时,当屏幕被锁定
- 8. 锁定MFC屏幕
- 9. 屏幕锁定Contineously
- 10. UILocalNotification不显示在锁定屏幕上
- 11. 屏幕锁定时显示优惠券
- 12. 在锁定屏幕上显示通知
- 13. 在锁定的Android屏幕上显示
- 14. 在锁定屏幕上显示警报?
- 15. 唤醒屏幕并在锁定屏幕上显示对话框
- 16. 如何在Windows中锁定屏幕?
- 17. 如何远程锁定iphone屏幕
- 18. UILocalNotification如何显示应用程序图标,当屏幕被锁定
- 19. 如何从代码(屏幕锁定)锁定android按钮/手机?
- 20. 锁定屏幕在10.6
- 21. 锁定屏幕在Android中
- 22. onResume在电话屏幕被锁定时被反复呼叫
- 23. 如何在Android锁定屏幕中显示通知?
- 24. 如何在锁定屏幕中显示Textview?
- 25. 如何在锁定屏幕控件上显示搜索栏
- 26. 如何在应用程序启动时显示锁定屏幕?
- 27. 如何使手机的屏幕在锁定时显示闹钟
- 28. 如何在屏幕锁定时显示活动?
- 29. iPhone,如何在锁定屏幕上显示更改对话框?
- 30. 关于屏幕锁定和解锁
看起来太棒了!我会马上查看! – barmaley 2011-05-31 11:25:44
是的,它的工作原理!非常感谢! – barmaley 2011-05-31 15:42:53
@barmaley乐于帮助! – pandre 2011-05-31 17:37:50