在 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
}
对您的代码的一些观察和建议:
- 而不是使用
containsIgnoreCase
使用 getPath()
并匹配路径。 See example.
- 此外,对于 activity 参数,使用 URL 查询参数而不是
containsIgnoreCase
。
- 正在启动 activity 或片段。我假设
startActivity
和 checkUserAccType
将处理该部分。 See example.
- // 否则...部分应该在下面一行。
- 身份验证。看起来不错。而且您似乎正在通过
getCurrent
方法签名使用 Firebase。 See example
希望处理来自 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
}
对您的代码的一些观察和建议:
- 而不是使用
containsIgnoreCase
使用getPath()
并匹配路径。 See example. - 此外,对于 activity 参数,使用 URL 查询参数而不是
containsIgnoreCase
。 - 正在启动 activity 或片段。我假设
startActivity
和checkUserAccType
将处理该部分。 See example. - // 否则...部分应该在下面一行。
- 身份验证。看起来不错。而且您似乎正在通过
getCurrent
方法签名使用 Firebase。 See example