2

从 java 中的 google glass 示例应用程序中,我发现它是通过 JSP 和 servlet 工作的。所以我可以创建一个时间线项并在其中设置文本

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
  TimelineItem timelineItem = new TimelineItem();
  timelineItem.setText("My Sample Project");
  MirrorClient.insertTimelineItem(credential, timelineItem);
  response.sendRedirect(WebUtil.buildUrl(request, "/second.jsp"));
}   

从jsp页面我可以捕捉到时间线并从中获得价值,比如

<%
    if (timelineItems != null && !timelineItems.isEmpty()) {
        for (TimelineItem timelineItem : timelineItems) {
%>
<div class="container">
    <div class="row">
        <div class="span4">
            <h2>Timeline 2</h2>
            <h3><%=StringEscapeUtils.escapeHtml4(timelineItem
                        .getText())%></h3>
        </div>
    </div>
</div>
<%
    }
    }
%>

所以现在我想做一些先进的事情,比如时间线束、设置背景图像、自定义菜单项、语音命令等。

但是在高级工作教程中,我发现它使用了一些 JSON 格式,例如 menuitem

HTTP/1.1 201 Created
Date: Tue, 25 Sep 2012 23:30:11 GMT
Content-Type: application/json
Content-Length: 303

{
  "text": "Hello world",
  "menuItems": [
    {
      "action": "REPLY"
    }
  ]
}

那么我该怎么做呢?我应该在 servlet 中写什么以及如何从 jsp 页面获取价值?我是否应该从 servlet 生成 json 并直接写入响应或其他内容

4

1 回答 1

1

您的代码示例中有几处有点误导和混淆,所以让我们将它们分解。

尽管 Java 示例使用了一个 Servlet,这很有意义,因为它旨在作为服务器端操作,但它并没有将 JSP 用于 Glass 部分本身。这只是为了向用户发送返回的内容。

在第一个示例中,MirrorClient.insertTimelineItem()将卡片发送到 Glass 的是对 的调用。您通过创建 TimelineItem 并在此项目上设置字段来创建此卡。

尽管大多数 Mirror API 文档都包含多种语言的示例,包括带有 JSON(您引用的)和 Java 的原始 HTML,但您并未确切指出您的第三个示例来自何处。例如,请参阅https://developers.google.com/glass/v1/reference/timeline/insert#examples,它有一个更完整的 Java 示例,既可以在卡片上设置文本,也可以设置通知信息。该页面上提到的各种其他属性还有其他 getter。

Mirror API Java 库的完整 JavaDoc 位于https://developers.google.com/resources/api-libraries/documentation/mirror/v1/java/latest/

于 2013-11-13T22:15:00.847 回答