在 Java 中处理来自 google 助手的深度 link

Handling a deep link from the google assistant in Java

希望处理来自 Google 助手的深度 link。由于目前我只有一个模拟器,因此无法对其进行测试(根据我的阅读,它需要一个真实的设备)。也就是说,我想知道我是否以正确的方式处理它。我不熟悉 Kotlin,我的代码变成了 Spaghetti 试图集成,所以我把它放在我现有的启动器 activity 中只是为了尝试让它暂时启动。清单和 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
        } 

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

  1. 而不是使用 containsIgnoreCase 使用 getPath() 并匹配路径。 See example.
  2. 此外,对于 activity 参数,使用 URL 查询参数而不是 containsIgnoreCase
  3. 正在启动 activity 或片段。我假设 startActivitycheckUserAccType 将处理该部分。 See example.
  4. // 否则...部分应该在下面一行。
  5. 身份验证。看起来不错。而且您似乎正在通过 getCurrent 方法签名使用 Firebase。 See example