5

Derzeit hat mein App die Möglichkeit, ein Benutzer zu helfen, ein einzelnes Ereignis zu ihrem Google Kalender hinzufügen: automatisch hinzuzufügen, alle Ereignisse zu ihrem Google KalenderWie kann ich einem Nutzer helfen, einen externen Kalender für Google Kalender auf einem Android-Gerät zu abonnieren?

final Intent calendarIntent = new Intent(Intent.ACTION_EDIT) 
     .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
     .setType("vnd.android.cursor.item/event") 
     .putExtra("beginTime", startTime) 
     .putExtra("endTime", startTime + 7200000L) // 2 hours 
     .putExtra("title", name) 
     .putExtra("description", description.toString()) 
     .putExtra("eventLocation", address); 

// later 
startActivity(calendarIntent); 

jedoch viele Anwender mögen. Unser Server-Team hat einen ICS-Feed erstellt, den die Leute subscribe to as an external Google calendar. Dies beinhaltet jedoch das Kopieren und Einfügen von URLs und ist für Endbenutzer verwirrend.

Im Internet können wir Personen mit einer URL des Formulars http://www.google.com/calendar/render?cid=OUR_ICS_URL verknüpfen, und sie können den Feed relativ einfach von dort hinzufügen. Wenn Sie jedoch diese URL im Android-Browser aufrufen, erhalten Sie alle Arten von seltsamen Popups über mobile vs.   Desktop-Websites, und selbst die fortgeschrittenen Android-Benutzer in unserem Entwicklungsteam konnten nicht herausfinden, wie der Kalender von dort hinzugefügt werden kann .

Eine andere Sache, die ich untersucht habe, war die Google Kalender-API, aber es scheint, dass ihre calendar list insert method eine Google Kalender-ID benötigt, keine URL zu einem externen Kalender.

Also, gibt es hier eine gute Lösung? Es scheint so, als müsste es eine Möglichkeit geben, unseren Benutzern zu helfen, ihre Kalender zu abonnieren, ohne dass sie auf ihren Desktop gehen und einen Browser in voller Größe öffnen müssen. Aber nichts, was ich versucht habe, hat irgendwelche Ergebnisse gebracht.

Irgendwelche Gedanken?

Antwort

0

Vielleicht könnten Sie AuthSub verwenden, um Ihre Benutzer zu authentifizieren, dann könnten Sie die Kalenderlisteneinfügemethode verwenden. Ich denke, die Zend framework macht es so.

+0

Soweit ich feststellen kann, kann die Kalendereinfügemethode nur Google-Kalender-IDs akzeptieren, keine willkürlichen externen Kalender-URLs. Fehle ich etwas? – mlc

+0

Ich denke, du hast recht, ich dachte nur für einen Augenblick, dass es eine Möglichkeit geben würde, die Funktion getCalendarListFeed() des Zend-Frameworks zu reproduzieren, da sie in ihrer Dokumentation angeben: "Der Kalenderdienst unterstützt das Abrufen einer Liste von Kalendern für den authentifizierten Benutzer. Dies ist die gleiche Liste von Kalendern, die in der Google Kalender-Benutzeroberfläche angezeigt werden, außer dass die als "Versteckt" markierten Kalender ebenfalls verfügbar sind. " Aber ich bin kein Zend-Experte, also ist es etwas jenseits von mir, dies zu analysieren. – Reggie

+0

Ja, ich habe gerade den Code hinter dieser Funktion (im Zend_Gdata_Calendar Namespace) überprüft und es sieht so aus, als ob sie die Kalenderwebseite (im Hintergrund) manuell von der externen URL ziehen und die Informationen aus ihrem DOM extrahieren. Keine elegante Lösung für eine einfache Android-App, das ist sicher. – Reggie

Verwandte Themen