我正在使用.NET Google Mirror API库。
我首先插入一个新的时间轴项目,其中包括内置的删除菜单项和一个自定义菜单项:
TimelineItem item = new TimelineItem() {
Text = "Test Item",
Notification = new NotificationConfig() { Level = "DEFAULT" },
MenuItems = new List<MenuItem>() {
new MenuItem() { Action = "DELETE" },
new MenuItem() {
Action = "CUSTOM",
Id = "report",
Values = new List<MenuValue>() { DisplayName = "Report" }
}
}
}
我还订阅了时间线通知,未指定任何操作(因此它应该接收所有操作)。当我在Glass上选择“报告”菜单项时,我的订阅不会收到通知。当我在Glass上选择“删除”菜单项时,我的订阅会收到DELETE的通知,其中还包括UserActions字段中的“删除”和“报告”操作。
我需要做些什么特别的事情来接收自定义菜单项的通知吗?
答案 0 :(得分:0)
如果您正在获取内置菜单事件(例如DELETE),但您没有收到自定义菜单事件,那么您唯一的问题应该是处理自定义事件,而不是获取它们。
进行测试;
这是用于处理内置和自定义通知的JAVA
代码,我猜您可以使用.NET
编写类似的代码。逻辑是一样的:
添加自定义菜单项:
List<MenuValue> menuValues = new ArrayList<MenuValue>();
menuValues.add(new MenuValue().setDisplayName("Test it!"));
menuItemList.add(new MenuItem().setValues(menuValues).setId("MY_CUSTOM_MENU_ITEM_ID").setAction("CUSTOM").setPayload("MY_CUSTOM_MENU_ITEM"));
timelineItem.setMenuItems(menuItemList);
处理自定义菜单项:
// notificationString comes from inputStream of Mirror API's notify request.
Notification notification = jsonFactory.fromString(notificationString, Notification.class);
if (notification.getUserActions().contains(new UserAction().setType("DELETE"))) {
LOG.info("It was a DELETE of a timeline card.");
} else if (notification.getUserActions().contains(new UserAction().setType("CUSTOM").setPayload("MY_CUSTOM_MENU_ITEM"))) {
LOG.info("It was a MY_CUSTOM_MENU_ITEM of a timeline card.");
}