2010-01-23 25 views
4

我正在製作一個應用程序,要求用戶使用userid,將用戶標識附加到靜態HTTP鏈接以檢索具有.ical(日曆)擴展名的用戶的每日日程安排信息文件。在Android上通過HTTP檢索和解析iCal數據

我需要從文件中讀取數據,在新UI中格式化並在Android設備上表示一些有用的數據。

我的查詢是可以在幕後訪問靜態HTTP鏈接嗎?當我在桌面瀏覽器上使用相同的鏈接時,它會要求用戶保存文件—如何在移動設備上執行此操作?我是否需要讀取數據並將其保存到某個位置,或者我可以保存.ical文件並從中讀取數據?

+0

嗨Rob,本網站上的[android]標籤下有許多關於檢索HTTP數據的其他問題。這聽起來像一個簡單的任務。至於解析數據,您可以暫時將文件保存到Android應用的本地存儲中,並且只能在運行時讀取並解析它,或者可以解析它並將數據直接保存到Android設備上的SQL數據庫。 – 2010-01-23 23:56:17

+0

嗨克里斯托弗,看到問題是我試圖讀取的文件,這是不是靜態即日曆文件,每個用戶在任何時候都不同。可能是它的簡單,但因爲我是新手,所以我對此有一些困惑。我讀了關於SqLite,並有相同的計劃,保存數據和檢索,但 該文件是icalfile.ics,我需要指定的格式來打開它,例如在桌面上的Excel或記事本。我如何處理它在移動。有沒有辦法直接讀icalfile.ics? 謝謝 – rob 2010-01-24 00:10:01

回答

4

Android設備通常無法處理iCalendar格式的文件(.ics)—沒有辦法只是「打開」這樣的文件並顯示信息。您必須編寫一些代碼(或使用庫如iCal4j)來解析日曆文件中的信息。

根據您的問題和意見,你需要打入幾件這樣的:

  1. 獲得用戶的ID在UI
    • String userId = ((EditText) findById(R.id.user_id)).getText.toString();
  2. 進入生成用戶的獨特的日曆網址
    • static final String CALENDAR_BASE = "http://example.com/cal/";
      String escapedUserId = URLEncoder.encode(userId, "UTF-8");
      String url = CALENDAR_BASE + escapedUserId +"/events.ics";
  3. 檢索http日曆文件
  4. 保存在本地文件
  5. 顯示日曆數據的用戶
    • 從磁盤讀取,你直接在網上保存的
    • 解析在任何UI格式你喜歡

您可以搜索棧溢出或發佈更多與iCal4j數據並顯示的文件如果您不確定或需要一些更具體的信息,那麼有關任何單個部件的特定問題。 :)

+0

感謝您的詳細解答 – rob 2010-01-24 01:04:20

+0

嗨克里斯托弗,我試圖讓應用程序,但同時使它,我發現了一些更多的問題。我正在使用的應用程序已經存在,允許用戶登錄和查看信息的桌面用戶。正如你知道的那樣,ical文件是在獲取數據的時候生成的。由於安全原因,我無法訪問該系統的數據信息,我可以做到這一點,我可以使用鏈接以及每個用戶唯一的用戶標識。 當我在桌面瀏覽器上使用鏈接時,它會爲我提供帶有用戶標識名稱的文件。 – rob 2010-01-28 00:14:33

+0

正如我前面提到的那樣,我可以通過選擇打開並以記事本或Excel格式打開文件。 ical文件是服務器的原始文件,具有特定用戶的信息,html標籤和一些原始信息。該文件的大小約爲50 KB。 – rob 2010-01-28 00:19:29