2010-01-23 17 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