Über dieses Blog...

»Wenn ich einmal alt bin, werde ich nur nörgeln — das wird ein Spaß!«

Tipps und Tricks, aber auch Kritik - breit gefächert von Technik bis hin zum Design, manchmal (oder immer öfter) auch Politik.

Momentaner Fokus: Android/Java, CalDAV

Feeds

Interessant gefunden? Mitlesen? Vollständige Beiträge per Feed.

RSS-Feed RSS 2, Atom

Zur Weiterverarbeitung oder zum Einbauen für Ihre Homepage: CSV, JavaScript

Durchsuchen

Tipp: AND & && OR | || XOR - ! NOT ( )

Archiv

Einträge im September 2010
MoDiMiDoFrSaSo
12345
6789101112
13141516171819
20212223242526
27282930
Beiträge im Archiv zeigen

Android: 25 Dollar, um Google zu helfen...

Ich wollte eben mal schauen, wie man Apps für Android im Market veröffentlichen kann. Die Antwort: als Normalsterblicher überhaupt nicht. Erstens seh ichs nicht ein, $25 dafür zu zahlen (bzw. hab ich keinen Goldesel), wenn ich Googles Plattform attraktiver mache und zweitens das altbekannte Problem: Kreditkarte. Die werdens wohl nie kapieren…

Android: Zeitzonen

Mein CalDav-Projekt schreitet weiter voran. Im Moment kämpfe ich ziemlich mit Zeitzonen und anderen Dingen — was bspw. bei mehrtägigen Terminen sehr unschöne Verhaltensweisen zeigt und auch sonst ist eine Verschiebung um zwei oder vier Stunden unschön.

Android scheint Termine grundsätzlich als UTC zu speichern und keine alternativen Möglichkeiten vorzusehen. An sich keine schlechte Idee, außerdem würde es erklären, warum man beim Termin speichern keine Zeitzonen angeben kann, ohne dass man mit Exceptions bombardiert wird.

Momentan löse ich die Problematik folgendermaßen: Am Anfang benötige ich die UTC-Zeitzone, die wird auch als Default gesetzt.

tz_utc = TimeZone.getTimeZone(„UTC“);
TimeZone.setDefault(tz_utc);

Damit kann ich zumindest alles, was UTC ist (hat ein Z am Schluss), einfach verwursten. Termine, die nicht als UTC gespeichert sind, sind im iCal-Format einigermaßen leicht zu unterscheiden:

Beispiel UTC: DTSTART:20100627T140000Z
Beispiel ME(S)Z: DTSTART;TZID=Europe/Berlin:20100809T110000

Ich hoffe mal, dass das so von den Clients konsequent durchgehalten wird, vermute aber eher nicht. Es gibt im Standard noch ein BEGIN:VTIMEZONE, in dem bspw. Sunbird Dinge reinschreibt, die aber erst mal nicht relevant sind. Möglicherweise ist das auch nur das Gegenstück zu dieser misteriösen eventtime von Android, alternativ könnte es auch sein, dass das auch gilt, wenn bei DTSTART nix angegeben ist. Da muss ich mal bei Gelegenheit noch im Standard nachlesen.

Zum Umwandeln jedenfalls setz ich die entsprechende Zeitzone auf bspw. Europe/Berlin, erzeuge das Datum und setze die Zeitzone wieder zurück auf UTC. Anschließend kann ich das Offset draufrechnen/abziehen:

tz = TimeZone.getTimeZone(tzName);
TimeZone.setDefault(tz);
d = mkCaldavDateString(s);
l = d.getTime();
TimeZone.setDefault(tz_utc);
d = new Date(l — tz.getOffset(d.getTime()));

Leider hat ein Date kein .setTimeZone oder so, mit dem man das einfacher hätte machen können. Vielleicht hab ich das allerdings auch übersehen. Ich merks mir einfach mal vor für spätere Optimierungen :) Das mit der Rechnerei ist jedenfalls sehr unschön und ich werd versuchen, da noch ne saubere Lösung zu finden.

Notiz: Bürgerrechte

Zitat direkt aus einem Heise-Artikel kopiert:

„Jeder Bürger muss zu jedem Zeitpunkt die Möglichkeit haben, Daten über seine Privatsphäre wie von Google im Internet unkenntlich zu machen“

Autor dieses geistigen Ergusses: Thomas Oppermann (SPD), also ein alter Bekannter, der immer mal irgendwelche merkwürdigen Dinge erzählt.

Warum ich das poste? Ganz einfach: als Notizzettel. Wenn mal wieder so was wie die Vorratsdatenspeicherung ansteht oder so.

Kabel Deutschland & T-Mobile

Es wird immer schlimmer… Während das T-Mobile-Netz schon wieder nicht funktioniert (das wird in letzter Zeit ziemlich oft, es häuft sich), hat Kabel Deutschland einem Bekannten eine 1. Mahnung für einen längst gekündigten Tarif geschrieben…

Wenn man nicht alles selbst macht… schade, dass das beim Handynetz nicht geht.

Ältere Einträge - Alle Nachrichten finden Sie im Archiv.

Jetzt registrieren und mitmachen!