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

2023-12-13

先谢谢您的帮助。

我正在开发一个用于研究目的的 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"); 

您可以以 CVS 形式组合 PrivateImeOptions 参数中的值,因此最好的选择是使用:

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

浏览一下here看看是否能找到您要找的东西。

有关 Google 键盘的更多信息here-> 寻找方法 setOptions

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • Android 应用程序在后台运行时保存数据

    目前我正在开发 xmmp 客户端 当应用程序位于前台时 该客户端工作得很好 但由于事实上 当应用程序处于后台时 我在 Application 类中保存了大量数据 复杂的 ArrayList 字符串和布尔值作为公共静态 每个字段都被垃圾收集
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • Delphi XE7 Android 全屏(隐藏软键)

    如何在XE7中全屏显示 隐藏顶部 标题 和底部 软键 工具栏 在 XE6 中 我可以通过在应用程序部分写入来调整 AndroidManifest 以使我的应用程序全屏显示并且没有操作栏 android theme android style
  • 更新到材质 1.2.0 后,材质按钮上缺少圆角半径属性

    这是我的材质按钮代码
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • 如何将图像从 Android 应用程序上传到网络服务器的特定文件夹中

    如何将图像从 android 移动到 Web 服务器上的指定文件夹 这是我的安卓代码 package com example bitmaptest import java io ByteArrayOutputStream import ja

随机推荐

  • 如何访问 __main__ 范围内的全局变量?

    我对 python 中变量的命名空间和范围感到困惑 假设我有一个 test py coding utf 8 author jason if name main global strName print strName 然后 我定义一个名为
  • 包含指针的原子结构

    include
  • 注册本地通知

    我正在开发一个带有phonegap的IOS应用程序 需要为其设置本地通知 该通知将在每个星期五和指定时间重复 还要求用户决定是否接收本地通知 我建议您阅读以下有关该主题的文章 我发现它非常有帮助 http useyourloaf com b
  • Instagram 视频 iPhone 挂钩

    目前最好的解决方案 https stackoverflow com a 21888830 1786820 我正在尝试做得更好 通过使用从 PhotoRoll 中预先选择的视频文件和预加载的标题打开 Instagram 应用程序 在 Flip
  • Native-session 针对代码点火器 2.1.4 进行了修改...这有意义吗?

    有人看到 CI 2 1 4 的修改有问题吗 该类是为 1 7 2 编写的 Github链接 问题 1 regenerate id的用途是什么 是会话 ID 轮换吗 2 session write close的潜在问题是什么 如评论中所示 3
  • 从c#中查找msform上的所有控件

    我正在尝试使用 VBA 可扩展性互操作从 c 查找 msform 上的所有控件 我可以使用以下方式找到所有表格 using System using Microsoft Office Interop Excel using Microsof
  • 如何使用 Python Urwid 制作类似聊天的 UI? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我已经可以使用 gevent 和 Zeromq 实现聊天守护进程 但我想为它们制作一个控制台 UI 我第一次尝试 ncurses 失败了 所以我尝试了Urwid并发现该项目nig
  • 用Java制作数字时钟

    我正在为一个项目制作一个数字时钟 我有四个课程 DigitalTimeUI 这是 JFrame 类 TitlePanel DigitPanel and ColonPanel 它们是所述项目的 JPanel 完成后 它应该看起来像这样 我坚持
  • 无法让 selenium webdriver 在 azure databricks 中工作

    我们有一些 python 脚本可以抓取网站并且运行良好 现在我们想在 Azure Databricks 中执行此操作 我们认为我们可以通过 Databricks 论坛中的以下帖子找到解决方案 但不幸的是 它不起作用 https forums
  • 将两个 datagridview 列合并为一个新列

    我想将两个 datagridview 列合并为一个新列 我首先将两个 col 的 Visible 属性更改为 false 然后尝试添加新的 col 该值必须格式化为以下 col1 Value 基金 col2 Value 是以上列的值 str
  • Ubuntu 中的 .gradle 目录在哪里?

    在 Windows 中 它是 C Users me gradle 但是Ubuntu呢 它在不同的位置吗 如果是的话 在哪里 我到处寻找但找不到它 它应该位于 HOME gradle gradle 和 或 项目特定
  • 如何将我的应用程序添加到 Android 默认拨号器选择中?

    我的问题是如何将我的应用程序添加到 android 默认拨号器选择中 更具体地说 而不使用 android intent action CALL PRIVILEGED 现在我正在使用下面的代码 效果很好
  • 从 React TypeScript 组件调用外部 Javascript 函数

    我有一个带有打字稿的 React Redux 应用程序 所以场景是这样的 我有一个包含一些javascript的index cshtml文件 现在 在我的 React 组件上 在 componentWillMount 函数的 Main ts
  • 使用 savefiledialog 保存图像时出现问题

    我正在使用 savefiledialog 来保存图像 画布是图片框 加载的图像是位图 当我尝试保存它时 文件已创建 但不知何故已损坏 因为当我尝试再次加载图像或在不同的查看器中显示时它不起作用 我的意思是保存的文件已损坏 有一种保存图像的方
  • 这个 LLVM 1.5 警告是什么意思? “没有‘id’的协议限定符已经过时了”

    我刚刚尝试使用 LLVM 1 5 编译器 包含在 XCode 3 2 3 中 编译 iOS 项目 并且收到了很多新警告 其中包括以下几个警告 protocol qualifiers without id is archaic 例如 这发生在
  • 标准化矩阵行,使其范数等于 1 (MATLAB)

    我有一个以下问题 我有一个矩阵A尺寸为 16x22440 我需要做的是对该矩阵的每一行进行归一化 使每行的范数等于 1 for n 1 16 norm A n 1 我怎样才能在matlab中实现这一点 编辑 该矩阵中的每一行都是由 160x
  • D3 径向树状图仅显示部分

    我根据 Mike Bostock 在 Observable 中的示例创建了下面的代码 我知道它与原始 d3 javascript 不同 https observablehq com d3 radial dendrogram 然而 它 仅当我
  • ios编程:使用线程将多个图像添加到库中

    在 Xcode 中 当我尝试添加超过 5 张图片到我的图书馆 它给了我以下错误 Error Domain ALAssetsLibraryErrorDomain Code 3301 Write busy UserInfo 0xa706aa0
  • 如何在 Today 扩展中发送和接收数据

    我想开发一个具有通知中心小部件的 iOS 应用程序 但我不知道应该如何在视图控制器和今日扩展之间发送和接收数据 传递数据 我尝试使用结构 但它不起作用 而且我也使用了应用程序组 但我不想使用这种方法 let shared NSUserDef
  • 以编程方式禁用 Android 中软输入键盘上的语音转文本按钮(麦克风)

    先谢谢您的帮助 我正在开发一个用于研究目的的 Android 应用程序 需要禁用软输入键盘上的语音到文本按钮 其原因是由于我正在开发的应用程序使用麦克风而出现并发问题 我知道对于一般应用程序来说 禁用按键通常被认为是不可能的 因为用户可能会