我正在使用 Google Home 测试我的智能家居网络钩子

如何解决我正在使用 Google Home 测试我的智能家居网络钩子

Google Home 应用告诉我该帐户已成功关联。我已经在亚马逊云上部署了履行服务。我已经实现了action.devices.sync的意图,然后我可以通过这个返回

公共类 GoogleActionApp 扩展了 SmartHomeApp {

private static final Logger LOGGER = LoggerFactory.getLogger(GoogleActionApp.class);

@Override

public void ondisconnect(@NotNull disconnectRequest disconnectRequest,@Nullable Map,? > map) {

}

@NotNull

@Override

public ExecuteResponse onExecute(@NotNull ExecuteRequest executeRequest,? > map) {

返回空值;

}

@NotNull

@Override

public QueryResponse onQuery(@NotNull QueryRequest queryRequest,? > map) {

返回空值;

}

@NotNull

@Override

public SyncResponse onSync(@NotNull SyncRequest syncRequest,? > map) {

SyncResponse.Payload payload = new SyncResponse.Payload();

payload.setAgentUserId("3476753456432");

payload.setDevices(

新的 SyncResponse.Payload.Device[] {

/* 新的 SyncResponse.Payload.Device.Builder()

.setId("123")

.setType("action.devices.types.OUTLET")

.addTrait("action.devices.traits.OnOff")

.setName(

Collections.singletonList("My Outlet 1234"),

“夜灯”,

Collections.singletonList("Wall plug"))

.setwillReportState(true)

SetDeviceInfo ("towns - out - inc","hs1234","3.2","11.4")

// .setCustomData(

新的 JSONObject()

.put("foovalue",74)

.put("barValue",true)

.put("bazValue","foo"))//

.build(),*/

新的 SyncResponse.Payload.Device.Builder()

.setId("456")

.setType("action.devices.types.LIGHT")

.addTrait("action.devices.traits.OnOff")

.addTrait("action.devices.traits.Brightness")

.addTrait("action.devices.traits.ColorTemperature")

//.addTrait("action.devices.traits.ColorSpectrum")

.setName(

Collections.singletonList("Lights Out Inc. 灯泡 A19 color hyperglow"),

“灯”,

Collections.singletonList("阅读灯"))

.setwillReportState(false)

SetDeviceInfo ("towns Out Inc.","hg11","1.2","5.4")

/* .setCustomData(

新的 JSONObject()

.put("foovalue",12)

.put("barValue",false)

.put("bazValue","bar"))*/

.build(),

});

return new SyncResponse(syncRequest.getRequestId(),payload);

}

if ("action.devices.SYNC".equals(intent)){

试试{

String jsonResponse= actionsApp.handleRequest(body,headers).get();

System.out.println(jsonResponse);

outputStream.write(jsonResponse.getBytes(Charset.forName("UTF-8")));

} catch (InterruptedException e) {

e.printstacktrace();

} catch (ExecutionException e) {

e.printstacktrace();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?