Android Kalender Absicht customizing
Mache ich ein back-end-Funktion für einen anderen Bereich ein Programm, das hinzufügen von Ereignissen zum Kalender des Benutzers. Im Grunde wird jemand wählen Sie eine Veranstaltung aus von Optionen in einer GUI und ich wollen einen event auf dem Kalender, die Spiele der Wahl.
Der code, damit es mehr klar ist, was ich arbeite mit:
java.sql.Timestamp tsStart = java.sql.Timestamp.valueOf(year + "-" + month + "-" + day + " " + startHour + ":" + startMinute + ":00");
java.sql.Timestamp tsEnd = java.sql.Timestamp.valueOf(year + "-" + month + "-" + day + " " + endHour + ":" + endMinute + ":00");
long startTime = tsStart.getTime();
long endTime = tsEnd.getTime();
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", startTime);
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FREQ=WEEKLY;COUNT="+numWeeks);
intent.putExtra("endTime", endTime);
intent.putExtra("title", title);
intent.putExtra("description", description);
intent.putExtra("eventLocation", location);
startActivity(intent);
Habe ich mit Absicht zu gehen über das tun dies, aber es gibt ein paar extras, die ich lieber nicht haben:
1. Wenn die Absicht startet, startet es im text Eintrag für das, Was Bereich. Ich habe automatisch ausgefüllt, alle Felder, so dass die Benutzer nicht benötigen, um etwas zu tun, und wenn es startet, wird die Tastatur nimmt viel Platz ein und sieht unordentlich aus. Gibt es eine Möglichkeit, ich kann entweder setzen Sie den Fokus nicht in das Textfeld oder auf gefälschte eine zurück-Taste?
2. Ist es möglich, einige der Abschnitte der Absicht nicht zeigen? Ich glaube nicht, dass es notwendig zu Fragen, die Zeitzone, brauchen nicht den ganzen Tag schauen (weil ich es sagen, die start-und Endzeit), brauchen keine Gäste, die lieber verstecken die Wiederholung, weil es angepasst und verwirren könnte die end-Benutzer zu sehen, und ich will NICHT die Erinnerungen, das macht er automatisch einen für 10 Minuten.
-> Ist es möglich, ausblenden/alle diese Elemente?
3. Ist es möglich, diese nie für den Benutzer angezeigt? Ich mag die Tatsache, dass es ermöglicht dem Benutzer zu wählen, welche Kalender, um zu verwenden, aber fein ich mit dabei bin mit Ihren Standard-da die meisten Menschen verbinden Ihr Telefon mit Ihren anderen Konten und Kalender des Handys ist mein Schwerpunkt. Wenn ich die 10-Minuten-Erinnerung Weg gehen, ich würde nur machen Sie es nie für den Benutzer angezeigt, und es haben nur füllen Sie Ihren Kalender, wie sage ich es.
Danke an alle die uns helfen. Ich lese über Absichten, Kalender und alles, was ich denken konnte, über bei Android-Entwickler, und habe ich eine Wand schlagen, dass ich nicht finden können, diese Antworten. Was mich daran erinnert, ist es eine Liste irgendwo von allen gültigen putExtra ist? Die Android-Entwickler-Seite war gut für die Auflistung aller Methoden, etc., aber abgesehen von der Suche nach ein paar Beispiele, ich weiß nicht, was alle, ich kann als gültige Argumente innerhalb der putExtra.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim senden einer Absicht zum hinzufügen eines Ereignisses zum Kalender, du bist dem Start der Kalender-Aktivität. Absichten sind, einfach eine Nachricht an das system, jede Aktivität, die mit der Absicht es ist, frei zu "sprechen". Wenn mehr als eine Aktivität, die den intent-filter mit der Absicht, der Benutzer sieht eine "disambiguation" - Bildschirm, die es ermöglicht, ihn oder Sie zu wählen, die app zu verwenden. In den meisten Absichten, es ist der MIME-Typ, der bestimmt, welche app(s) werden angezeigt. Sie konnte schreiben Sie Ihre eigene Aktivität bei der Verarbeitung von Ereignissen, wenn Sie wollte. Die Aktivität Absicht filter entsprechen den Kalender, und ich würde nicht empfehlen, dies zu tun, da Sie die Unterzeichnung Sie sich für den Umgang mit jeder Absicht, die versucht, etwas hinzufügen, um den Kalender!
Haben Sie die Wahl, das senden einer Absicht, die Kalender-Provider (eigentlich der Kalender-app, die den Zugriff auf die provider) oder das einfügen der Daten selbst mit den ContentResolver-API mit der Kalender-Anbieter.
Sollten Sie die letztere Vorgehensweise, und geben Sie Ihre eigene Benutzeroberfläche statt über den Kalender-Aktivität, aber ich rate dir zur Vorsicht, hinzufügen wiederkehrende Ereignisse, weil Sie Recht schwierig ist. Im Allgemeinen, Entwickler sollten die Kalender-Aktivität um Benutzern zu ermöglichen, Ereignisse hinzufügen.
Wenn Sie mit der Absicht zu starten, den Kalender "insert event" Aktivität, die Sie haben keine Kontrolle über die Benutzeroberfläche. Als eine Bequemlichkeit, die Kalender-Aktivität füllen die Benutzeroberfläche mit den Extras, die Sie senden. Wenn Sie nicht senden Sie eine Extra, die Aktivität wird entweder füllen Sie das Feld mit dem default-oder lassen Sie es leer. Ich bin nicht sicher, dass es funktioniert, aber das ist gängige Praxis.
Entwicklern Häufig übersehen wird, die Entwickler guides, wenn Sie apps entwickeln. Werfen Sie einen Blick auf
http://developer.android.com/guide/topics/providers/calendar-provider.html#intents, die beschreibt, die Kalender-Anbieters im detail. Diese Seite listet alle verfügbaren Extras, die Ihnen sagt, wie die Verwendung des ContentResolver () - Prozess für das einfügen von events, und arbeitet mithilfe von Intents.
Im moment, ich glaube nicht, dass es einen standard-Weg für eine Anwendung setzen die Struktur von den Absichten der Verarbeitung, aber für die Einbau-oder gebündelte Anwendungen, die erscheinen auf einem Gerät, können Sie immer Fragen Sie einfach hier für mehr Informationen. Denken Sie daran, dass einige apps sind gebündelt mit der Plattform, sondern auch andere (z.B. Google Maps) voneinander getrennt sind. Sie haben der öffentlichkeit die Absichten/APIs, aber Sie brauchen, um bewusst sein, dass Sie möglicherweise nicht verfügbar für einen bestimmten Benutzer-Gerät.