Na een beetje proberen kwam ik erachter dat de U100 wel .vcs formaat agenda events (vCalendar) kan importeren. Bij .ics kreeg ik feedback dat de telefoon het bestandsformaat niet kende, bij .vcs deed hij dit niet.
Echter zette hij hem niet in de agenda, dus heb ik een beetje verder geprobeerd en uiteindelijk kwam ik erachter dat de samsung wel losse .vcs events (mits in het goede formaat) wil accepteren en deze in de agenda toevoegt. Uiteindelijk heb ik in java een parser gebouwd die het .ics bestand omzet naar losse .vcs vcalendar events en die kan je dan allemaal tegelijk via bluetooth versturen naar de U100. De U100 slaat ze automatisch op en zet ze in de agenda.
Dus uiteindelijk:
- In iCal kalender exporteren naar .ics bestand
- Java parser erover heen (aanroepen in de terminal)
- De gegenereerde bestanden selecteren en kopieeren via bluetooth naar de U100
De code is een beetje lelijk, maar als je die compiled zou het bij jou ook moet werken
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| /**
* AgendaConverter converts .ics iCalendar file to single .vcs vCalendar events for the Samsung U100
* commandline input: java AgendaConverter nameOfAgenda.ics
*/
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
public class AgendaConverter {
private static void doReadWriteTextFile(String inputFileName) {
try {
BufferedReader inputStream = new BufferedReader(new FileReader(inputFileName));
String inLine = null;
int counter = 1;
boolean printing = false;
PrintWriter outputStream = new PrintWriter(new FileWriter("AgendaItem" + counter + ".vcs"));
String summary = "";
String start = "";
String end = "";
while ((inLine = inputStream.readLine()) != null) {
if (inLine.compareTo("BEGIN:VEVENT") == 0) {
outputStream = new PrintWriter(new FileWriter("AgendaItem" + counter + ".vcs"));
printing = true;
counter++;
//print begin vcs file
outputStream.println("BEGIN:VCALENDAR\r");
outputStream.println("VERSION:1.0\r");
outputStream.println("BEGIN:VEVENT\r");
}
else if (inLine.compareTo("END:VEVENT") == 0) {
//print end vcs file
outputStream.println("DTSTART:" + start + "Z\r");
outputStream.println("DTEND:" + end + "Z\r");
outputStream.println("SUMMARY:" + summary + "\r");
outputStream.println("DESCRIPTION:" + summary + "\r");
outputStream.println("END:VEVENT\r");
outputStream.println("END:VCALENDAR\r");
outputStream.close();
printing = false;
}
else {
if (printing) {
if (inLine.startsWith("DTSTART")) {
int last = inLine.lastIndexOf(":");
start = inLine.substring(last + 1);
}
else if (inLine.startsWith("DTEND")) {
int last = inLine.lastIndexOf(":");
end = inLine.substring(last + 1);
}
else if (inLine.startsWith("SUMMARY:")) {
summary = inLine.substring(8);
}
}
}
}
inputStream.close();
} catch (IOException e) {
System.out.println("IOException:");
e.printStackTrace();
}
}
public static void main(String[] args) {
doReadWriteTextFile(args[0]);
}
} |