在 android 应用程序中以编程方式禁用蓝牙键盘上的主页按钮
Disabling the home button on a bluetooth keyboard programatically in an android application
我正在使用 Xamarin 和 C# 制作 Android 应用。该应用程序将始终 运行 处于 Kiosk 模式,在该模式下,设备的底部导航栏将被删除,应用程序外部的导航将被阻止。
但是,当用户连接蓝牙键盘时,他们可以点击物理主页按钮并 return 到 android 主屏幕,这应该是无法访问的。
我知道有一些方法可以 disable the home button,但我无法让它们中的任何一个正常工作,因为它们通常都是 hack,因为 Android 没有直接让开发者拦截home键。
有没有办法重新映射连接的蓝牙键盘的home键?还有其他我可能忽略的解决方案吗?
由于设备的安全性,您无法拦截 Android 主页按钮,但是如果您的设备已获得 root 权限,您可以尝试使用 Android 按键布局文件 https://source.android.com/devices/input/key-layout-files.html
但这需要设备上的 root
另一种使用root的方法是找到正确的/dev/input/eventX设备,获得对其的独占访问权,然后使用/dev/uinput接口创建一个新设备。然后将键盘上除 home 键以外的所有事件写入新界面。我还没有测试过这个,但理论上它应该可以工作。
您或许可以创建一个虚拟启动器,它会在启动后立即退出。但它会完全禁用主页按钮,而不仅仅是在 BT 键盘上。
我正在使用 Xamarin 和 C# 制作 Android 应用。该应用程序将始终 运行 处于 Kiosk 模式,在该模式下,设备的底部导航栏将被删除,应用程序外部的导航将被阻止。
但是,当用户连接蓝牙键盘时,他们可以点击物理主页按钮并 return 到 android 主屏幕,这应该是无法访问的。
我知道有一些方法可以 disable the home button,但我无法让它们中的任何一个正常工作,因为它们通常都是 hack,因为 Android 没有直接让开发者拦截home键。
有没有办法重新映射连接的蓝牙键盘的home键?还有其他我可能忽略的解决方案吗?
由于设备的安全性,您无法拦截 Android 主页按钮,但是如果您的设备已获得 root 权限,您可以尝试使用 Android 按键布局文件 https://source.android.com/devices/input/key-layout-files.html
但这需要设备上的 root
另一种使用root的方法是找到正确的/dev/input/eventX设备,获得对其的独占访问权,然后使用/dev/uinput接口创建一个新设备。然后将键盘上除 home 键以外的所有事件写入新界面。我还没有测试过这个,但理论上它应该可以工作。
您或许可以创建一个虚拟启动器,它会在启动后立即退出。但它会完全禁用主页按钮,而不仅仅是在 BT 键盘上。