如何在Glass上监视用户的操作

时间:2014-04-07 05:44:27

标签: google-glass google-mirror-api

我有一个基于镜像API的应用程序,其中我已经分配了一个自定义菜单项,单击应插入一张新卡。我这样做有点问题。我需要知道我可以调试的方法。

  1. 检查玻璃时间表的订阅是否成功。
  2. 点击菜单,在控制台上打印出一些内容。
  3. 我可以检测是否在点击菜单时调用了回调网址。

1 个答案:

答案 0 :(得分:1)

听起来你有问题,但是不确定如何进行调试?有几点需要注意并尝试:

问题1:检查订阅

subscriptions.insert返回的对象应表明订阅成功。根据您的语言,异常或错误表示存在问题。

您也可以致电subscriptions.list以确保订阅在那里并设置为您期望的值。如果用户删除了Glassware的授权,则此列表将被清除。

有关用于订阅的网址需要记住的一些事项:

  1. 必须是HTTPS网址,且不能使用自签名证书
  2. 地址必须可从公共互联网上解析。 "本地主机"和本地名称别名不会起作用。
  3. 必须可从公共互联网访问本机。地址如" 192.168.1.10"可能不会很好。
  4. 问题2:点击时打印

    您需要确保正确设置订阅,并且您有一个webapp侦听您指定的将在该URL处理POST操作的地址。当命中该URL时调用的方法由您决定,因此您可以向其添加日志记录。语言细节可能会有所帮助。

    尝试使用自己的浏览器转到指定的网址,自行测试。您应该至少看到打印出来的日志消息。

    如果您只想打印特定菜单项,则需要确保可以解码作为POST一部分发送的JSON主体,并根据菜单项的操作和ID进行响应。

    您还应该确保尽快返回HTTP代码200 - 如果您不这样做,Google的服务器可能会重试一段时间,或者如果他们从未得到回复,最终会放弃。

    更新:从您发布的示例代码中,我注意到您要么登录INFO,要么发送到stdout,后者应该登录到INFO(请参阅https://developers.google.com/appengine/docs/java/#Java_Logging)。您是否从doGet()方法获取日志记录? This StackOverflow question表示,除非您更改logging.properties文件,否则appengine不会显示在INFO上记录的项目。

    问题3:是否点击了它?

    根据您的网络服务器和应用服务器的配置,应该有关于哪些网址被点击的日志(正如您对问题的评论中的@scarygami所述)。

    您可以自行测试,以确保您可以点击该URL并进行日志记录。但请记住,我上面提到的警告是关于什么使得Mirror API回调的有效URL。

    更新:从下面的评论中,听起来 看到属于TimelineUpdateServlet的网址被点击,但不是看到任何证据表明正在调用TimelineUpdateServlet.doPost()中的日志消息。记录什么返回代码?您是否尝试通过POST手动调用此URL以确保URL将转到您期望的servlet?