gpt4 book ai didi

android - c和uinput,如何处理不同的语言

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:39 26 4
gpt4 key购买 nike

也许这是一个愚蠢的问题,但在我开始编写我的软件的这一部分之前,我正在寻找一些说明。

我的应用程序允许用户在基于 Android 的客户端应用程序浏览器上书写。虽然我已经编写了所有必要的代码来处理这些东西,但我不知道如何处理在手机上选择的不同语言。

我的意思是,在我的手机上制作一个 COLON (:) 我需要发送一个 SHIFT (RIGHT SHIFT -> CODE 54) 和一个 DOT (.)(CODE 52),但这对每种语言都一样吗?在启用了英语的 Android 手机上会一样吗?

最佳答案

您使用 uinput 接口(interface)发送的事件本质上是按键按下和释放以及 codes键码,不是字符。键码是标准化的,实际的键盘驱动程序负责将低级硬件代码(也称为扫描码)转换为正确的键码。

因此,整个子系统与语言无关,国际字符集映射支持通常由用户空间(例如 X 服务器)或内核的上层(例如虚拟控制台子系统)提供。

由于您正在使用 uinput 生成自己的事件,因此您实际上是在模拟硬件键盘,因此您负责将实际输入的内容与正确的键码相匹配。

如果您要从现有的实际或虚拟键盘中继事件,您有两个选择:

  • 找到一种从内核接收带有正确键码的原始事件的方法。在可以通过 evdev 完成的成熟的 Linux 发行版上界面。我不确定该功能是否适用于 Android。

  • 找到一种方法从标准语言不可知集中接收键码并将它们转换为 Linux 键码。例如,与键盘符号相反,X 键代码也不受键盘映射的影响。

  • 翻译您的应用程序收到的任何内容。现在这很棘手 - 您必须了解键盘映射,并且您可能还难以使用修饰键(例如 Shift),因为它们可能并不总是传递给应用程序。

关于android - c和uinput,如何处理不同的语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8772082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com