以编程方式禁用android软输入键盘上的语音到文本按钮(微型手机)

以编程方式禁用android软输入键盘上的语音到文本按钮(微型手机),android,keyboard,microphone,speech-to-text,Android,Keyboard,Microphone,Speech To Text,提前谢谢你的帮助 我正在开发一个用于研究目的的android应用程序,需要禁用软输入键盘上的speech to text按钮。原因是由于我正在开发的应用程序使用麦克风时出现的并发问题。我理解,对于一般应用程序,禁用按键通常被视为不可能(因为用户可能会更改默认键盘)。我知道会使用默认键盘 考虑到这一点,是否可以禁用某些键?我相信至少我应该能够指定输入类型,以便隐藏麦克风按钮。我这样说是因为如果我在设置中禁用speech to text(不是以编程方式,而是以用户身份手动),则麦克风图标将从键盘上移

提前谢谢你的帮助

我正在开发一个用于研究目的的android应用程序,需要禁用软输入键盘上的speech to text按钮。原因是由于我正在开发的应用程序使用麦克风时出现的并发问题。我理解,对于一般应用程序,禁用按键通常被视为不可能(因为用户可能会更改默认键盘)。我知道会使用默认键盘


考虑到这一点,是否可以禁用某些键?我相信至少我应该能够指定输入类型,以便隐藏麦克风按钮。我这样说是因为如果我在设置中禁用speech to text(不是以编程方式,而是以用户身份手动),则麦克风图标将从键盘上移除。我愿意接受任何可能的解决方案(不使用默认键盘除外),因为此应用程序不会出现在play store上。

除了用户设备中已经存在的预定义键盘之外,您不能强制用户输入

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

只需在您正在查看的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"); 
您可以在CVS表单中组合PrivateImeOptions参数中的值,因此最佳选项是使用:

                edt_txt.setPrivateImeOptions("nm,com.google.android.inputmethod.latin.noMicrophoneKey"); 
仔细看看,看看你是否能找到你要找的东西


有关谷歌键盘的更多信息->查找方法setOptions以禁用多个键盘上的麦克风按钮。使用属性

android:privateImeOptions=“nm”

但它不适用于Gboard(谷歌本地键盘)

要禁用板上麦克风,请使用

android:privateImeOptions=“nm”

editText.setImeOptions(输入法\u标志\u否\u个性化\u学习)

只需在布局文件的编辑文本中使用此选项:

android:imeOptions="flagNoPersonalizedLearning"

我也看到了。但是,我在我的应用程序的这一部分中没有使用xml。我想用编程的方式来做这件事。你能试着像这样编辑文本吗?setPrivateImeOptions(“nm”);这太有道理了,哈哈。谢谢你工作得很有魅力。