如何禁用活动中的主页按钮单击 - 就像在锁屏应用程序中一样?
Posted
技术标签:
【中文标题】如何禁用活动中的主页按钮单击 - 就像在锁屏应用程序中一样?【英文标题】:How to disable Home Button Click in an Activity - like in Lockscreen Apps? 【发布时间】:2020-09-04 15:22:01 【问题描述】:我需要开发一个锁屏应用程序。我已经设置了前台服务,包括一个监听屏幕关闭事件的广播接收器。
现在我被主页按钮困住了。 我知道 Google Play Store 上有几个锁屏应用程序,它们都可以工作。当按下虚拟主页按钮时,它显示它被按下,但没有任何反应。
我已经环顾四周并尝试了一些事情:
使用 TYPE_KEYGUARD 不起作用(已弃用) 尝试使用 OnKeyDown 捕捉主页按钮的点击也无济于事 尝试覆盖对话框以锁定活动会导致以下错误:无法添加窗口 android.view.ViewRootImpl$W@e68931b -- 窗口类型 2010 的权限被拒绝
(即使我在清单中设置了 android.permission.SYSTEM_ALERT_WINDOW)。
我还尝试使用锁定任务(屏幕固定)。它可以工作,但它会显示一条消息,即按住后退和最近按钮时可以禁用锁定。有没有办法让锁定任务只能从应用程序本身停用? Play 商店中的锁屏应用程序如何锁定主页按钮按下?
【问题讨论】:
【参考方案1】:我自己想出来的。 App Store 中的锁屏应用程序不会禁用主页按钮。他们确实使用了系统覆盖窗口,即使按下按钮也会隐藏主屏幕。当我尝试将 TYPE_SYSTEM_ERROR 用于覆盖时,导致错误。对于较新的 API 版本,TYPE_APPLICATION_OVERLAY 有效
【讨论】:
以上是关于如何禁用活动中的主页按钮单击 - 就像在锁屏应用程序中一样?的主要内容,如果未能解决你的问题,请参考以下文章