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

如何从Google Home设备获取用户位置并实现指定Jovo框架示例

如何从Google Home获取用户位置并实现权限请求示例

我来帮你解决这两个问题,下面是具体的步骤和代码实现:

一、从Google Home设备获取用户位置的步骤

要获取用户的位置,核心是通过权限请求来获得用户授权,具体分为以下三步:

  • 确定所需权限类型
    Google Home提供两种位置权限选项,你可以根据需求选择:

    • DEVICE_PRECISE_LOCATION:获取设备的精确地理位置(包含经纬度)
    • DEVICE_COARSE_LOCATION:获取设备的大致位置(比如城市级别)
  • 在Google Actions控制台配置权限
    登录你的Google Actions项目控制台,按以下操作配置:

    1. 进入Build > Actions > 你的目标Action > 权限页面
    2. 添加你需要的位置权限,并填写清晰的权限说明(告诉用户为什么需要这个权限,提升授权率)
    3. 保存配置,确保权限生效
  • 在代码中发起权限请求并处理结果
    当技能需要位置信息时,先检查是否已有授权,没有的话就向用户发起请求;授权后即可获取位置数据。

二、权限请求示例的代码实现

下面是基于Jovo框架的完整实现代码,对应你提到的示例逻辑:

const { App } = require('jovo-framework');
const { GoogleAssistant } = require('jovo-platform-googleassistant');

// 初始化Jovo应用
const app = new App();
app.use(new GoogleAssistant());

// 配置技能处理逻辑
app.setHandler({
    // 技能启动时触发的意图
    LAUNCH() {
        // 发起位置权限请求,第一个参数是权限说明,第二个是请求的权限列表
        this.googleAction().askForPermission(
            '为了给你提供精准的附近服务推荐',
            ['DEVICE_PRECISE_LOCATION']
        );
    },

    // Google Assistant内置的权限结果处理意图
    ON_PERMISSION() {
        // 判断用户是否授予权限
        if (this.googleAction().isPermissionGranted()) {
            // 获取位置数据
            const location = this.googleAction().getDeviceLocation();
            
            if (location) {
                // 提取位置信息并反馈给用户
                const { latitude, longitude, city } = location;
                this.tell(`已获取到你的位置:${city},经纬度为${latitude}, ${longitude}`);
            } else {
                this.tell('抱歉,暂时无法获取你的位置信息');
            }
        } else {
            // 用户拒绝权限时的反馈
            this.tell('好的,那我无法为你提供位置相关的服务了');
        }
    },
});

// 导出处理函数供Lambda使用
exports.handler = app.handler;

代码关键点说明:

  • LAUNCH意图:技能启动后直接调用askForPermission方法发起权限请求,明确告知用户权限用途,这是提高授权率的关键。
  • ON_PERMISSION意图:这是Google Assistant专门用于处理权限请求结果的内置意图,无需额外配置。通过isPermissionGranted()判断授权状态,授权成功后用getDeviceLocation()获取包含经纬度、城市等信息的位置对象。
  • 测试注意事项:测试时确保你的Google Home设备(或测试用手机)已登录对应Google账号,且设备系统设置中允许位置访问。

内容的提问来源于stack exchange,提问作者Jayakumar Manian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:51:27