7

我想使用 Java 生成一个基于树的菜单,该菜单将出现在 USSD 浏览器上。每个节点可能有子节点,以叶节点结束。我还必须维护每个访问此菜单的用户的状态(例如他在菜单上的当前位置)以方便导航。

关于如何实现树生成和状态管理的任何想法?

4

3 回答 3

13

我假设您从网关收到一条消息,例如: (Session#, UserInput) 并且您需要计算下一个信息以发送给用户?

我提议:

  1. 表 CURRENTSTATE:
    会话#
    状态

  2. 表STATES:
    州名

  3. 表 CHOICES:

    选择
    名称
    DoCode
    NewState

然后,当您收到消息(Session#,UserInput)时:

  1. 使用 Session# 查询 CURRENTSTATE 以确定用户处于什么状态。
  2. 使用 State 和 Choice=UserInput 查询 CHOICES,以根据用户输入确定新状态(和 DoCode)。
  3. 基于DoCode,可以做一些处理。
  4. 更新 CURRENTSTATE 以反映新状态。
  5. 查询 STATES 以获取标题(例如“请选择颜色”)。
  6. 查询 CHOICES 以从新状态中获取可能的选择(例如(1,“蓝色”),(2,“红色”)等)
  7. 构建消息(连接标题+选项)
  8. 返回消息给用户。

这是解决问题的合理方法吗?

于 2010-06-14T17:00:38.423 回答
2

嗨,我目前也在开发一个基于 USSD 菜单的应用程序。不幸的是,互联网上关于 USSD 应用程序的资源稀缺,我认为这是因为与 SMS 不同,USSD 尚未标准化。所以每个电信都有自己的ussd实现。正在进行的项目需要一个 USSD 网关(由电信运行)和运行我的应用程序的网络服务器(apache)。幸运的是,我用 php 编写的应用程序通过 xml 与电信 USSD 网关通信。所以我通过 xml 从 USSD 网关获取移动用户输入,并且我还将 xml 页面发送回 USSD 服务器,这反过来会在用户的手机上显示回复。这是我知道的全部。

于 2011-03-07T07:22:02.013 回答
2

看看这个问题的实现: Vumi.org

源代码可在https://github.com/praekelt/vumi查看

于 2011-08-02T08:40:36.217 回答