我正在设计一个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"是一个字符串,在获得值后,我可以在服务器端拆分并仅获取所需的信息,但这里的情况并非如此。那么,我的问题是如何将每个日期值分别发送到服务器并将其存储在数据库中?
我不确定你的代码片段应该做什么。我没有看到它实际上从日历中获取任何内容的地方。
如果要从日历中获取所有事件,请执行以下操作:
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
是伪代码。您需要添加自己的代码,将数据发送到您的站点。