【问题标题】:Disabling the home button on a bluetooth keyboard programatically in an android application在android应用程序中以编程方式禁用蓝牙键盘上的主页按钮
【发布时间】:2016-07-18 23:40:46
【问题描述】:

我正在使用 Xamarin 和 C# 制作一个 Android 应用程序。该应用程序将始终在 Kiosk 模式下运行,其中设备的底部导航栏将被移除,并且应用程序外部的导航将被阻止。

但是,当用户连接蓝牙键盘时,他们可以点击物理主页按钮并返回不应访问的 android 主屏幕。

我知道disable the home button 有一些方法,但我无法让它们中的任何一个正常工作,因为它们通常是黑客,因为 Android 不直接允许开发人员拦截主页按钮.

无论如何我可以重新映射连接的蓝牙键盘的主页键吗?还有其他我可能忽略的解决方案吗?

【问题讨论】:

    标签: android xamarin xamarin.android android-bluetooth


    【解决方案1】:

    由于设备的安全性,您无法拦截 Android Home Button,但是如果您有 root 设备,您可以尝试使用 Android Key Layout Files https://source.android.com/devices/input/key-layout-files.html

    但这需要设备上的root权限

    【讨论】:

    • 这会让您重新映射特定输入设备或所有输入设备的键吗?
    • 针对特定的根设备。
    • 谢谢!这种方法的一个缺点是它不仅需要 root,还需要对 /system 的写访问权。一些有根设备没有这个。
    【解决方案2】:
    1. 另一种使用root 的方法是找到正确的/dev/input/eventX 设备,获得对其的独占访问权,然后使用/dev/uinput 接口创建一个新设备。然后将键盘上除home键以外的所有事件写入新界面。我没有对此进行测试,但理论上它应该可以工作。

    2. 您也许可以创建一个虚拟启动器,它一启动就退出。但它会完全禁用主页按钮,而不仅仅是在 BT 键盘上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 2016-07-23
      相关资源
      最近更新 更多