【问题标题】: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 商店中的锁屏应用程序如何锁定主页按钮按下?

【问题讨论】:

    标签: android android-studio lockscreen android-homebutton


    【解决方案1】:

    我自己想出来的。 App Store 中的锁屏应用程序不会禁用主页按钮。他们确实使用了系统覆盖窗口,即使按下按钮也会隐藏主屏幕。当我尝试将 TYPE_SYSTEM_ERROR 用于覆盖时,导致错误。对于较新的 API 版本,TYPE_APPLICATION_OVERLAY 有效

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多