2010-05-25 58 views
5

我想使用將在USSD瀏覽器上顯示的Java生成一個基於樹的菜單。每個節點可能有子節點,以葉節點結尾。我還必須保持每個訪問此菜單的用戶的狀態(如他在菜單上的當前位置)以方便導航。Java USSD菜單樹生成 - 如何

關於我如何實現樹生成和狀態管理的任何想法?

+0

我不明白。您的菜單是否顯示在Web瀏覽器或Swing/SWT應用程序上? – Riduidel 2010-05-25 09:59:39

+0

當您發送諸如* 123#的短代碼時,ussd瀏覽器會顯示在手機上。基本上,我不能爲此使用任何API。我自己必須維護菜單樹的節點。但我無法想出一個好的設計。 – 2010-05-25 11:03:10

回答

8

我假設你從網關得到一條消息,例如: (Session#,UserInput) ,你需要計算下一條發送給用戶的信息嗎?

我建議:

  1. 表CURRENTSTATE:
    活動#
    國家

  2. 表STATES:
    國家
    標題

  3. 表選擇:
    國家
    選擇
    名稱
    DoCode
    NewState

然後,當你得到的消息(會話#,UserInput):使用Session#

  1. 查詢CURRENTSTATE,以確定哪些國家用戶處於。
  2. 查詢選擇使用狀態和選擇= UserInput來確定基於用戶i的新狀態(和DoCode) NPUT。
  3. 基於DoCode,您可以進行一些處理。
  4. 更新CURRENTSTATE以反映新狀態。
  5. 查詢狀態以獲得標題(例如「請選擇一種顏色」)。
  6. 查詢選擇,以得到新的狀態可能的選擇(例如,(1, 「藍」),(2, 「紅」)等)
  7. 建立消息(CONCAT標題+選擇)
  8. 返回消息給用戶。

這是解決問題的合理方法嗎?

+0

感謝您的回覆。完全是我的要求。這似乎是一個可行的想法。 – 2010-06-15 11:13:39

+0

很高興我能幫到你。如果您認爲它解決了問題,請隨時爲我的答案投票。 – Albert 2010-06-15 19:21:03

+0

這是我遇到的最好的解決方案。 +1的解釋。 :) – Fawzan 2014-02-22 08:17:41

1

HI, 也正在開發基於USSD菜單的應用程序。不幸的是,互聯網上的USSD應用程序缺乏資源,我認爲這是因爲與SMS不同,USSD尚未標準化。所以每個電信都有自己的ussd實現。 正在運行的項目需要運行我的應用程序的USSD網關(由電信運行)和我的web服務器(apache)。 我用php編寫的應用程序通過xml通信電信USSD網關,幸運的是我。所以我通過xml從USSD gatway獲得移動用戶輸入,並且還將xml頁面發送回USSD服務器,該服務器在用戶的手機上顯示回覆。 這就是我所知道的。