我正在尝试使用 google-voice-java API 从 google 语音帐户中读取文本。除了 code.google.com 页面之外,我找不到太多关于使用它的文档。我只需要一点关于如何正确使用 getSMS() 的帮助;
1 回答
google-voice-java API 将简单地返回您的 Google Voice 数据的原始 HTML。因此,您需要解析由 返回的 HTML getSMS();
,并按照您认为合适的方式处理数据。
如果您只想在控制台窗口中查看返回的数据的样子,请执行以下操作
Voice voice = new Voice(userName, password);
String sms = voice.getSMS();
System.out.println(sms);
基于此,您可以看到 HTML 的外观以及如何解析它。
编辑:可能值得注意的是,您需要在构建路径中包含其他依赖项 jar ;这应该在他们的GettingStarted上更加明确!
编辑 2:根据您在下面的评论,有getUnreadSMS()
和markAsRead(msgID)
,但前者似乎会返回已读短信和未读短信。
getSMS()
如果您注意到该方法(以及大多数其他 API 方法)返回的响应 XML 的顶部,<json>
元素中有 JSON 数据,它似乎包含您需要的所有必要信息(包括一个isRead
变量来指示是否SMS 是否标记为已读)。
从该getSMS()
方法中提取响应并使用此在线 JSON 查看器来更好地检查<json>
元素中的数据,以便您了解其中的内容。当您将 JSON 数据粘贴到在线查看器中时,请省略元素内的前导<![CDATA
和尾随。]>
<json>
我只需设置一个 JSON 解析器(甚至可能使用GSON)并基于 JSON 数据创建 SMS 模型对象,完全忽略 HTML;对于未读消息,显然您需要isRead
字段设置为的 JSON 对象。false
然后,您可以使用该id
字段传递给markAsRead(msgID)
方法,将它们标记为已读(我刚刚测试了这个方法并且它有效)。