【问题标题】:Intercept Home/Stack buttons press on Xamarin MonoDroid API Level 16在 Xamarin MonoDroid API 级别 16 上拦截主页/堆栈按钮
【发布时间】:2015-05-13 14:15:40
【问题描述】:

我想拦截并取消(在某些情况下)在 Android 4.1 API 级别 16 上按下的主页按钮和堆栈按钮。

实际限制: - 我不能更改操作系统版本,它必须是 Android 4.1。 - 按钮是虚拟的,而不是物理的 - 无法root

我在网上找到了一个例子,但我可以拦截除 home 和 stack 之外的所有按钮。

我尝试将此代码转换为 MonoDroid,但找不到 TYPE_GUARD 参数。

public override void OnAttachedToWindow()
{
  this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
  super.onAttachedToWindow();
}

我还覆盖了 OnKeyDown 和 DispatchKeyEvent,并且我可以再次捕获除 home 和 stack 之外的所有按钮按下。

提前致谢!

【问题讨论】:

    标签: c# xamarin xamarin.android


    【解决方案1】:

    我会引导你回答这个问题:Detect Home Button Press in Android

    这解释了为什么你不能这样做(尤其是在 4.0 之后我相信)。

    我倾向于猜测“堆栈”按钮将是相同的,这些按钮被设计为特定于操作系统并覆盖应用程序可能尝试执行的任何操作。

    您可以检测一些生命周期事件,并在您只需要知道但无法阻止或改变所发生的情况时尝试使用这些事件。

    【讨论】:

      【解决方案2】:

      这家伙让它跑了……不同的方式,但是跑了…… 他正在为 ActionCloseSystemDialogs 使用 BroadcastReceiver。

      Detect home button press in android

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多