在Alexa Skill的Intent处理程序中使用java.awt.Desktop

问题描述

我正在使用ask-sdk-java和SkillServlet开发我的第一手技能。我已经成功实现了自定义技能处理程序并与Alexa通信。

现在,我想在处理程序中运行一些代码,例如使用java.awt.Desktop打开Web浏览器:

public Optional<Response> handle(HandlerInput input){
 
Desktop.getDesktop().browse(new URI("http://www.google.com"));
 
        String speechText = "Of course";
        return input.getResponseBuilder()
                .withSpeech(speechText)
                .build();
}

我正在将其构建为.war文件并运行到tomcat服务器中。

调用该意图时,我收到了alexa响应,但是没有打开任何Web浏览器。

有可能实现这一目标吗?

问候,

解决方法

您是否希望浏览器在运行该技能的服务器上或在Echo设备上打开? ASK-SDK是服务器端,您对设备的响应将始终由Alexa语音服务来调解。您不能在客户设备上运行任意Java代码。

您可以在响应中运行HTML和JavaScript,但只能在游戏中使用Alexa Web API,并且只能在支持它的设备上使用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...