使用 API 密钥通过 Android 上的 GRPC 验证 Google Cloud Speech

2024-02-23

我已经成功地通过 GRPC 使用流模式下的服务帐户让 Google Cloud Speech 适用于我的 Android 应用程序。但是,根据我所读到的内容,出于安全原因,我不应该部署包含这些凭据(当前作为 JSON 文件存储在资源中)的 Android 应用程序。正确的做法是创建 API 密钥,如下所述:https://cloud.google.com/speech/docs/common/auth https://cloud.google.com/speech/docs/common/auth

这允许我限制对我的特定 Android 应用程序的访问。但是,我一直无法找到如何使用 GRPC 的 API Key。我目前正在创建一个GoogleCredentials来自 JSON 文件的实例,效果很好。如何从 API 密钥获取凭证对象?


您可以使用 API 密钥尝试此操作

Metadata.Key<String> API_KEY = Metadata.Key.of("x-goog-api-key", Metadata.ASCII_STRING_MARSHALLER);

Metadata apiKeyMetadata = new Metadata();
apiKeyMetadata.put(API_KEY, yourApiKey);

final ManagedChannel channel = new OkHttpChannelProvider()
    .builderForAddress(HOSTNAME, PORT)
    .nameResolverFactory(new DnsNameResolverProvider())
    .intercept(MetadataUtils.newAttachHeadersInterceptor(apiKeyMetadata))
    .build();
speechStub = SpeechGrpc.newStub(channel);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 API 密钥通过 Android 上的 GRPC 验证 Google Cloud Speech 的相关文章

  • 确定是否在已取得 root 权限的设备上运行

    我的应用程序具有某些功能 该功能只能在具有 root 权限的设备上运行 与其让此功能在使用时失败 然后向用户显示适当的错误消息 我更喜欢能够先默默地检查 root 是否可用 如果不可用 则首先隐藏相应的选项 有没有办法做到这一点 这是一个类
  • 如何在android中点击画布上绘制的圆圈?

    我正在开发一个人脸检测应用程序 在这个应用程序中 我必须在脸上的眼睛和嘴巴用户可以点击拖动圆圈 在检测到的人脸上根据自己设置位置 因此 所有圆圈都已成功绘制在脸上 但我无法单击特定圆圈并使用缩小选项在整个脸上移动 请建议我有关相同问题的正确
  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • Whatsapp 在 Android 中共享音频文件时正在剪切音频文件

    我在共享格式不是 mp3 的音频文件时遇到问题 文件被共享 但长度较短 例如 如果文件有 10 秒 则仅共享 5 秒 如果我使用 mp3 格式 它会完全共享 但其他格式会出现问题 注意 该文件在其他应用程序 如Messenger 中共享没有
  • 如何使用 Android 版 Facebook 同步的联系人图片

    我的手机上安装了 Android 版 Facebook 它会自动将联系人列表中人员的 FB 个人资料图片同步到我的手机 我想在我访问的应用程序中使用这些图片ContactsContract PhoneLookup 我真的需要 Faceboo
  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • 如何在 StateListDrawable 中设置可绘制对象的 alpha 值?

    我想在按下时更改可绘制对象的 alpha 值 因此 我创建了两个可绘制对象并将它们放入 StateListDrawable 中 并设置按下状态的 alpha 值 但它就是行不通 StateListDrawable content new S
  • ActionBarCompat 支持库 android:selectableItemBackground 不起作用

    我正在使用新的 ActionBarCompat 支持库 操作栏中的操作按钮在按下时应更改其背景 它适用于 Android 4 3 但不适用于 Gingerbread 在姜饼中 如果我按下按钮 它不会改变背景 我什至改变了选择器 它再次适用于
  • 为网络和/或持久存储序列化 Android Bundle?

    我需要序列化一个全面的应用程序 游戏 状态 以便通过网络传输或保存到磁盘并在以后检索 当然 捆绑包用于在多个用例中保存 恢复状态 因此使用它们将是理想的选择 但是 由于某种原因 Bundle 不可序列化 寻找解决方案只发现了将 Bundle
  • 不使用 CookieManager 的 Android 会话 cookie

    我的应用程序进行多次网络调用以获得身份验证 我需要将此会话存储在 cookie 中 我想使用 Cookie Manager 但经过一些研究后 我发现它仅适用于 API 9 及更高版本 并且我的应用程序需要向后兼容 我使用 HTTPURLCo
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android,语言文件不起作用

    我现在正在创建一个 Android 应用程序 并尝试为我的母语添加语言文件 但在某种程度上 这对我不起作用 我尝试在两部不同的手机中加载该应用程序 但结果相同 之前创建过语言文件 效果良好 但这次不行 手机设置为瑞典语 语言文件适用于我创建
  • 用于代码生成的 ANTLR 工具版本 4.7.1 与当前运行时版本 4.5.3 不匹配

    我正在开发一个 Android 应用程序 当前使用 DSL 和一些库 突然构建给了我这个错误 任务 app kaptDebugKotlin 失败 用于代码生成的 ANTLR 工具版本 4 7 1 与当前运行时版本 4 5 3 不匹配 用于解
  • 如何从debug.keystore文件获取MD5?

    我使用一些命令来获取 MD5 私钥debug keystore文件 但实际上我得到的是 SHA1 私钥而不是 MD5 我不知道如何获得MD5 这是我使用的命令 keytool list alias androiddebugkey keyst
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • 使用startActivityForResult,如何获取子活动中的requestCode?

    我有四项活动 即 A B C 和 D 我的情况是A将通过startActivityForResult启动活动B startActivityForResult new Intent this B class ONE 在另一种情况下 我将使用不
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • 在 TextView onTextChanged 上设置文本

    我有一个定义为类属性的文本视图 以便我可以在整个类中访问它 在 onCreate 方法中我执行以下操作 chars TextView findViewById R id chars chars setText 300 之后 public v
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • 无法设计全授权工作

    我需要访问 google API 我试图让用户使用 Devise 2 1 1 和 Omniauth 使用 gemgoogle oauth2因为 OAuth2 是 Google 文档推荐的 不幸的是我无法让它工作 这是routes rb Te
  • Django - 按组注释加权平均值

    我有以下在 SalesRecord 上运行的模型管理器 def by variety and date self start date end date return self model objects filter date range
  • 用 Java 或其他方式发送 GET 和 POST 请求而没有响应

    是否可以使用 Java 或其他语言发出 GET 和 POST 请求 这样您就不必关心返回的内容 就像只是发送请求但不想收到任何响应 无论您是否关心回复 它都会被发送 HTTP 协议规范说它必须如此 如果您不关心响应 您的客户端可以在发送请求
  • 在Python中导入CAD对象并存储为数组

    我正在使用 Autodesk Fusion 360 对 3D 零件进行建模 参见下图 然后可以将其导出并保存为 step iges sat 或 smt 文件 我想要实现的目标是将这部分转换为Python中的3D numpy数组 数组的每个元
  • 使用环境覆盖 Spring Cloud Config 值

    有没有办法用另一个属性源 特别是系统环境 覆盖通过 Spring Cloud Config Server 设置的属性 我知道我可以通过循环来手动完成Environment对象的PropertySources 但如果我可以设置它以便boots
  • CMake - 如何获取目录名称中的倒数第二个?

    所以我有 get filename component a dir some file PATH get filename component a last dir a dir NAME 其中 a last dir 应该返回我的目录的最低级
  • 在每个函数/每个代码块的基础上启用 SSE4 的正确方法是什么?

    对于我的一个 OS X 程序 我有一些使用 SSE4 1 指令的优化案例 在仅 SSE3 的计算机上 运行非优化分支 SupportsSSE4 1 returns true on CPUs that support SSE4 1 false
  • Java FX 更改前一阶段场景中的标签文本

    我有一个Main启动我的应用程序的类有其MainControllerfxml 中指定的类 当点击Connect按钮打开另一个具有不同场景和控制器的窗口 基于我想要改变的行动Label通过 my 的文本值MainController 但它没有
  • 使用 的 Websocket CdiUtils NPE

    该应用程序在 TC7 Spring 3 和 JSF 2 2 中运行良好 但我想添加 JSF 2 3 的推送功能 因此我升级到 TC 9 0 8 Spring 5 0 5 和 JSF 2 3 0 在遇到一些简单的初始问题后由于升级 应用程序部
  • Maven 构建在 Jenkins 中中止

    我是詹金斯的新手 我成功地在 Jenkins 中克隆了 GIT hub 存储库 现在尝试在 Jenkins 中构建获取的 Maven 项目 我有 7 个从 GITHUB 获取的项目 它们相互依赖 即某些项目在其 POM 中为其他项目定义了依
  • 如何用标准 Java 实现 Android 消息处理程序模式?

    我正在编写一个通过蓝牙与 PC 通信的 Android 应用程序 在正常操作期间 它会从手机向 PC 快速连续发送短 8 字节数据包 通常频率 gt 100Hz 在每个设备上 运行一个单独的线程来执行写入和读取 代码如下所示 The Cla
  • 如何在Android中获取设备信息[重复]

    这个问题在这里已经有答案了 可能的重复 如何检测操作系统或设备类型等系统信息 https stackoverflow com questions 3213205 how to detect system information like o
  • @Profile 导致无法启动 EmbeddedWebApplicationContext

    我尝试使用 Profile 功能来分离生产 开发环境配置和 测试 配置 但是当我将 Profile 添加到我的配置类中时 我得到 Exception in thread main org springframework context Ap
  • 样式使 NavLink 在 React 中“不可点击”

    我正在尝试设计一个react router dom NavLink 导航栏 我已经采用了几种不同的方法 但在每种情况下 无论我选择什么方式 都会使 NavLink 不可点击 它将是一个样式精美的框 不会通过单击进行导航 我采取了以下几种方法
  • 从本地时区转换为 utc 时区

    我正在尝试创建一个函数 它接受一个时间对象并将其转换为 UTC 时间 下面的代码似乎关闭了一小时 当我中午通过转换器运行时 我返回 18 00 00 但是当我通过在线转换器运行相同的数据时 我得到 17 00 00 我在这里做错了什么 任何
  • 将项目从 .NET Framework 3.5 迁移到 4.0 后,在调试期间在 DllImport 例程上获取 InteropServices.SEHException

    我编写了一个与winspool 打印驱动程序交互的应用程序 几个月来它一直工作得很好 我需要将我的项目从 NET Framework 3 5 移动到 4 0 以包含同事程序集 但这样做 并且仅这样做 会导致我的 dll 导入方法调用之一在从
  • 在 Python 中实现 GObject 接口

    当使用 GTK3 的 Python 3 绑定时 是否可以实现gobject GInterface通过子类化接口 在我的具体情况下 我想写一个自定义Gtk TreeModel https lazka github io pgi docs Gt
  • 使用客户端处理(服务器 = F)在 Shiny 应用程序中进行 DT 编辑会引发 JSON 错误

    我有一个闪亮的服务器应用程序 用户可以在其中编辑数据表 然后一些反应性摘要统计信息会相应更新 我在一个相当慢的框架上托管这个应用程序 这就是为什么我想使用客户端处理进行 DT 渲染 即server F传递给DT renderDataTabl
  • 连续任务未按正确顺序执行

    一直尝试按顺序执行任务 但它们是以随机顺序执行的 在 ContinueWith 之后附加 Unwrap 没有帮助 从这些方法而不是 Task 返回 T 的 Task 并将其结果分配给调用者也不起作用 不确定我的方法的签名 它们是否应该包含
  • 使用 API 密钥通过 Android 上的 GRPC 验证 Google Cloud Speech

    我已经成功地通过 GRPC 使用流模式下的服务帐户让 Google Cloud Speech 适用于我的 Android 应用程序 但是 根据我所读到的内容 出于安全原因 我不应该部署包含这些凭据 当前作为 JSON 文件存储在资源中 的