以编程方式禁用android软输入键盘上的语音转文本按钮(麦克风)



提前感谢您的帮助。

我正在开发一个用于研究目的的android应用程序,需要禁用软输入键盘上的语音到文本按钮。这样做的原因是由于并发性问题,因为我正在开发的应用程序使用了麦克风。我理解,对于一般的应用程序,禁用键通常被认为是不可能的(因为用户可以更改默认键盘)。我知道一个事实,默认键盘将被使用。

考虑到这一点,是否有可能禁用某些键?我相信,至少我应该能够指定输入类型,这样麦克风按钮是隐藏的。我这么说是因为如果我在设置中禁用语音对文本(不是通过编程,而是作为用户手动),麦克风图标就会从键盘上移除。我是开放的任何可能的解决方案(除了不使用默认键盘),因为这个应用程序将不会出现在播放商店。

你不能强迫用户通过用户设备中已经存在的预定义键盘输入。

你唯一能解决这个问题的方法就是编写你自己的自定义键盘,这是一个非常糟糕的主意。

只需通过在EditText中使用XML声明以编程方式禁用语音输入。您可以使用以下属性:

android:privateImeOptions="nm"   // nm stands for No Microphone.

如果你想以编程方式设置它,你可以试试::

        // deprecated i guess
        edt_txt.setPrivateImeOptions("nm");   
         // this one is new but it works only with Google Keyboard.
         edt_txt.setPrivateImeOptions("com.google.android.inputmethod.latin.noMicrophoneKey"); 

你可以把PrivateImeOptions参数中的值以CVS的形式组合起来,所以最好的选择是使用:

                edt_txt.setPrivateImeOptions("nm,com.google.android.inputmethod.latin.noMicrophoneKey"); 

浏览一下这里,看看你是否能找到你要找的东西。

更多关于谷歌键盘的信息在这里->查找方法setopoptions

禁用多个键盘上的麦克风按钮。使用属性

android:privateImeOptions="nm"

但它不能为Gboard(谷歌本地键盘)

在Gboard上禁用麦克风使用

android:privateImeOptions="nm"editText.setImeOptions(IME_FLAG_NO_PERSONALIZED_LEARNING)

只需在布局文件的editText中使用这个:

android:imeOptions="flagNoPersonalizedLearning"

相关内容

  • 没有找到相关文章

最新更新