gpt4 book ai didi

android - 如何检查是否使用了 native /硬件键盘?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:00 25 4
gpt4 key购买 nike

我想检查是否使用了 native /硬件键盘,如果可能的话我想禁用第三方键盘。

我的目标很简单,我只使用 native android 软键盘在我的编辑框中输入值,没有其他键盘应该能够做到这一点

谢谢

编辑

我知道做我想做的事情不是个好主意,我知道 android 的基本思想是让 Intent 、 Activity 和服务知道根据 Intent 过滤器处理某些类型的 Intent 。但这在每条规则中都有异常(exception),尤其是当我们谈论安全时。

我想禁用所有第三方键盘,如果无法通过某些 API 或其他方式做到这一点...是否有任何解决此问题的方法?

编辑

String s=Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);

这将返回当前启用的输入法(键盘),但我需要类似“系统键盘”的东西,但我没有看到任何类似的标志:-(。

List<InputMethodInfo> list = m.getInputMethodList();

一种可能的解决方案是将列表[0]作为我正在搜索的键盘,但我不想按照顺序进行中继(除非保证顺序始终是索引为0的键盘用手机安装)

这是列表的值

[InputMethodInfo{com.htc.android.htcime/.HTCIMEService, settings: com.htc.android.htcime.HTCIMESettings}, InputMethodInfo{com.volosyukivan/.WiFiInputMethod, settings: null}]

最佳答案

I want to check if the native/hardware keyboard is used

您可以使用Configuration 对象来查看设备的硬件键盘是否被隐藏。通常,这意味着他们正在使用该键盘,因为大多数设备在硬件键盘可用时不会显示 IME。然而,有些设备可能同时支持这两种,我不知道外部键盘(USB、蓝牙)如何与这个值交互。

also if possible I want to disable the third party keyboards.

幸运的是,这是不可能的。

is there any workaround to this problem ?

问题中没有提到这一点。

yes the will not be happy, but they will be much more unhappy if you let their secure data to be corrupt

如果用户选择使用替代键盘,那是他们作为用户的选择。用户完全可以根据需要切换键盘。用户完全有能力做出这些决定。替代键盘完全有可能比内置键盘更安全,因为设备加载了 spy 软件,例如 CarrierIQ。 .因此,您关于通过攻击用户选择的键盘来提高安全性的假设存在根本性缺陷。

当然,您根本不必支持使用任何键盘,强制用户使用您自己设计的某种屏幕输入选项。这也不是完全安全的(例如,tapjacking 攻击),对于出于特定原因选择某些第三方键盘的人(例如,盲人用户、有电机控制问题的用户),它可能会导致可用性问题。

我不知道有什么方法可以明确确定固件自己的 IME 是什么,特别是因为这因设备和固件而异。

关于android - 如何检查是否使用了 native /硬件键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8165618/

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