You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android TV应用接入Google智能家居设备:Homegraph API权限问题咨询

选型建议与HomeGraph API权限问题解决方案

针对你的Android TV虚拟助手项目中Google智能家居设备访问的选型困惑与HomeGraph API权限问题,给出以下解决方案:

一、正确的API选型

先明确你提到的几个SDK/API的定位,帮你理清选型方向:

  • Local Home SDK:用于智能设备的本地通信控制(如蓝牙、WiFi直连),不适合客户端应用获取用户设备列表的需求。
  • Google Home Mobile SDK:仅针对Android手机端的Google Home应用扩展功能,不适用于Android TV平台。
  • Google Home Device SDK:用于开发智能硬件设备本身,而非第三方客户端应用调用。
  • Device Access API:针对需要控制特定厂商设备(如Nest系列)的场景,需获得设备厂商授权,若你的需求是获取用户所有关联的智能家居设备,并非最优选择。
  • HomeGraph API:这是匹配你需求的正确选择——它提供用户已关联智能家居设备的状态、列表数据,支持与设备交互,完全适配你通过虚拟助手控制用户智能家居的场景。

二、HomeGraph权限范围报错的解决方法

你遇到的Some requested scopes cannot be shown: [https://www.googleapis.com/auth/homegraph]错误,核心原因是homegraph权限属于Google受限权限范围,无法直接在未审核的OAuth请求中使用,解决步骤如下:

  1. 完善OAuth同意屏幕配置

    • 登录Google Cloud Console,进入你的项目,打开「API和服务」→「OAuth同意屏幕」。
    • 选择「外部」用户类型(仅内部测试可选内部),填写完整的应用信息:包括应用名称、隐私政策链接、应用详细描述(重点说明应用需要访问HomeGraph的原因,比如“为用户提供虚拟助手控制智能家居设备的功能”)。
  2. 添加并申请权限审核

    • 在OAuth同意屏幕的「权限」页面,点击「添加或删除权限」,搜索并添加https://www.googleapis.com/auth/homegraph权限。
    • 提交审核请求,等待Google团队审核通过。审核周期通常为几个工作日,需确保应用用途符合Google政策要求。
  3. 测试阶段临时方案

    • 审核通过前,可在OAuth同意屏幕的「测试用户」列表中添加指定Google账号,这些测试用户可正常使用该受限权限进行开发测试,无需等待审核完成。

三、代码调整与注意事项

你的登录代码逻辑本身无问题,但需确保权限申请符合上述审核要求,调整后的代码示例如下:

fun startLogin() {
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken(getString(R.string.google_web_client_id))
        .requestProfile()
        .requestScopes(
            Scope("https://www.googleapis.com/auth/assistant-sdk-prototype"),
            Scope("https://www.googleapis.com/auth/homegraph")
        )
        .requestEmail()
        .build()

    googleSignInClient = GoogleSignIn.getClient(this, gso)
    val signInIntent = googleSignInClient?.signInIntent
    if (signInIntent != null) {
        launcher.launch(signInIntent)
    } else {
        Log.e("LoginFailure", "signInIntent is null")
    }
}

调用HomeGraph API时,需使用Google Sign-In获取的AccessToken作为请求头的Authorization: Bearer {accessToken}参数,否则会返回权限不足错误。

内容的提问来源于stack exchange,提问作者Md Ahsan Kabir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:33:23