首页 > 解决方案 > 用 Java 处理来自谷歌助手的深层链接

问题描述

希望处理来自 Google 助理的深层链接。因为目前我只有一个模拟器,所以我无法测试它(根据我的阅读,它需要一个真实的设备)。也就是说,我想知道我是否以正确的方式处理它。我对 Kotlin 不熟悉,我的代码正在变成 Spaghetti 试图集成,所以我把它放在我现有的启动器活动中,只是为了尝试让它暂时启动。manifest 和 actions.xml 的设置类似于健身应用教程。

我这样做正确吗?

        if (mAuth.getCurrentUser() != null) {
            data = this.getIntent().getData();
            if (data != null && data.isHierarchical()) {
                uriData = data.toString();
                containsStart = containsIgnoreCase(uriData,"start");
                containsRun = containsIgnoreCase(uriData,"run");
                if(containsStart && containsRun) {
                    Intent intent = new Intent(getApplication(), RunActivity.class);
                    intent.putExtra("runStart", true);
                    startActivity(intent);
                }
                }
            else {
                checkUserAccType();
            }
            //Else, if there is no current user, start the Authentication activity
        } 

标签: javaandroidactions-on-googleapp-actions

解决方案


关于您的代码的一些观察和建议:

  1. 而不是使用containsIgnoreCase使用getPath()并匹配路径。见例子
  2. 此外,对于活动参数,使用 URL 查询参数而不是containsIgnoreCase. 查看示例
  3. 启动活动或片段。我假设startActivity并将checkUserAccType处理那部分。见例子
  4. // Else... 部分应该在下面一行。
  5. 验证。看起来不错。看来您正在通过getCurrent方法签名使用 Firebase。查看示例

推荐阅读