从手机日历向数据库发送事件日期值

时间:2014-12-10 12:20:33

标签: java-me pim

我正在设计一个需要阅读用户手机日历的j2me应用程序原型,以便检索用户的日程安排信息。我使用JSR 75 PIM API。我实际上可以读取日期值,但在将值发送到数据库时,它只保存第一个日期。我似乎无法弄清楚背后的真正问题。请帮助....

我将J2me用于客户端,PHP用于服务器,MYSQL用于数据库。

我尝试从sun无线工具包和ItemSelectionScreen类中采用PIM示例的代码。我尝试像这样修改代码

String getDisplayedField(PIMItem item) throws PIMException {
        int fieldCode = Event.REVISION;
       if (item.countValues(fieldCode)!= 0) {
             long b = item.getDate(fieldCode, 0);   
             cal = Calendar.getInstance();
             cal.setTimeZone(TimeZone.getTimeZone("GMT"));
             cal.set(Calendar.HOUR,12);
             cal.set(Calendar.MINUTE, 0);
             cal.set(Calendar.AM_PM, Calendar.AM);
             Date d = new Date(b);
             cal.setTime(d);
             Date t= new Date(cal.getTime().getTime());
             a=t.toString().substring(0,10);
             c=t.toString().substring(23,28);
             f=t.toString().substring(10,19);
             //fieldValue1=a.concat(c);
             fieldValue=a.concat(c).concat(f);
             System.out.println(fieldValue); 
            //fieldValue=d.toString(); 
            //fieldValue=d.toString().substring(0, 9); 
                }
       return fieldValue;
            }

我的想法是因为" fieldValue"是一个字符串,在获得我可以在服务器端分割的值后,只获得所需的信息,但这不是这里的情况。所以,我的问题是如何将每个日期值分别发送到服务器并将其存储在数据库中?

1 个答案:

答案 0 :(得分:0)

我不确定你的代码片段应该做什么。我没有看到它实际从日历中取出任何东西的任何地方。

如果要从日历中获取所有事件,请执行以下操作:

private EventList events;

try {
  events = (EventList) PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_ONLY);
} catch (PIMException e) {
  System.out.println("Can't open EventList");
  return;
}

现在您已打开日历,并准备将所有事件提取到events变量中,并循环显示它们。

Enumeration all;
Event event;
try {
  all = events.items(); // Puts all events into this variable
  while (all != null && all.hasMoreElements()) { // Loop through them
    event = (Event) all.nextElement();
    System.out.println("Event found: " + event.getString(Event.SUMMARY, 0));
    // Add code here, to send this event to PHP
    // You'll need to serialize the event
    // For example:
    // myHTTPConnention.call("http://www.example.com/receiveEvent.php?summary=" + event.getString(Event.SUMMARY, 0) + "&start=" + event.getString(Event.START, 0));
  }
} catch (Exception e) {
  System.out.println("Error while looping through events");
}

要明确:myHTTPConnection是伪代码。您需要添加自己的代码,将数据发送到您的网站。