【发布时间】:2026-01-05 19:45:02
【问题描述】:
大家好,
我正在开发一个紧急呼叫应用程序。我想要的是当有人使用这个特定代码时,手机会解锁,然后只有我的应用程序会运行。我想我需要一个接收器,只是想知道我是否必须为我的应用程序创建自己的主屏幕和锁定屏幕。请问有什么想法吗???
提前非常感谢:)
【问题讨论】:
标签: android service broadcastreceiver android-wake-lock
大家好,
我正在开发一个紧急呼叫应用程序。我想要的是当有人使用这个特定代码时,手机会解锁,然后只有我的应用程序会运行。我想我需要一个接收器,只是想知道我是否必须为我的应用程序创建自己的主屏幕和锁定屏幕。请问有什么想法吗???
提前非常感谢:)
【问题讨论】:
标签: android service broadcastreceiver android-wake-lock
仅执行 SCREEN_OFF 和 USER_PRESENT 有一些注意事项 1)如果屏幕本身超时,屏幕关闭后手机不会立即锁定,有几秒钟的延迟 2)如果屏幕因其他原因(电话)熄灭,它可能根本没有被锁定。 3)你必须一直监控它们,如果你在手机锁定时启动你不会知道
您可以使用KeyguardManager http://developer.android.com/reference/android/app/KeyguardManager.html 并检查inKeyguardRestrictedInputMode()
另一个选项是使用PowerManager http://developer.android.com/reference/android/os/PowerManager.html 并检查isScreenOn(),如果您实际上只关心屏幕状态而不是键盘保护状态。
【讨论】:
您可以创建一个 BroadcastReceiver 并将其注册到您的应用程序中以侦听Intent.ACTION_SCREEN_OFF、Intent.ACTION_SCREEN_ON 和Intent.ACTION_USER_PRESENT。在 SCREEN_OFF 和 USER_PRESENT 之间,手机被锁定。
【讨论】:
没有认可的方式来更换锁定屏幕。见Is there a way to override the lock pattern screen?
上一个答案是另一个与这个问题合并的问题:
我会查看ACTION_NEW_OUTGOING_CALL,以及this Android 开发人员关于接收器优先级的博文。
【讨论】: