Android App aus dem Kalender öffnen

8

Die App, an der ich gerade arbeite, muss in der Lage sein, Ereignisse in einem ausgewählten Kalender zu erstellen. Wenn der Benutzer diese Ereignisse dann in seiner Kalenderansicht-App anzeigt, bietet er die Möglichkeit, zu meiner App zurückzukehren, um weitere Informationen anzuzeigen und die damit verbundenen Daten.

Kalenderanbieter Ich kann die Ereignisse erstellen und speichern Uri zu dem Ereignis für spätere Verwendung / Entfernung, aber ich habe keine gute Möglichkeit gefunden, meine App von diesen Ereignissen in einer Kalenderanzeige-App zu öffnen.

Die beiden Optionen, die ich in Betracht gezogen habe, sind eine benutzerdefinierte URL in der Ereignisbeschreibung, die beim Klicken auf einen Intent-Filter in meiner App trifft (zB myapp: // event / 1000) oder ich könnte CUSTOM_APP_PACKAGE und CUSTOM_APP_URI Werte von CalendarContract beim Erstellen des Ereignisses.

Mein Problem mit der ersten Option ist, dass ich nicht garantieren kann, dass die Kalenderansichts-App meine benutzerdefinierte URL korrekt als Link behandelt und den Nutzer darauf klicken lässt (funktioniert nicht in Google Kalender auf meinem Tablette). Die zweite Option sieht vielversprechender aus, aber ich konnte nicht viel Dokumentation finden, die erklärt, wie man sie benutzt.

Weiß jemand, wie man das richtig macht? Jede Hilfe wird geschätzt!

    
woestman 10.04.2013, 07:06
quelle

3 Antworten

11

Wenn die Ausrichtung auf Jelly Bean (API 16+) akzeptabel ist, ist die Verwendung von CUSTOM_APP_PACKAGE die beste Lösung. Wenn Sie das neue Kalenderereignis hinzufügen, müssen Sie nur die CUSTOM_APP_PACKAGE -Funktion ausfüllen und CUSTOM_APP_URI Felder (mit Ihrem Paketnamen und einem URI zur Identifizierung des Ereignisses) bzw.):

%Vor%

Dann müssen Sie als Teil von AndroidManifest.xml angeben (als die Dokumentation ) erklärt) die Aktivität, die von der Kalender App aufgerufen wird, um die Detailansicht anzuzeigen, zB

%Vor%

ShowCalendarDetailActivity wird gestartet, wenn auf die Schaltfläche geklickt wird, die angezeigt wird. Es wird eine Intent mit der Aktion "android.provider.calendar.action.HANDLE_CUSTOM_EVENT" übergeben und der URI ist der Kalenderelement-URI.

Der von Ihnen angegebene benutzerdefinierte URI befindet sich in den Extras mit dem Schlüssel CalendarContract.EXTRA_CUSTOM_APP_URI .

%Vor%

Wenn Sie sich den Code ansehen möchten, in dem die Kalender App diese Absicht erstellt, finden Sie unter EventInfoFragment.updateCustomAppButton() in EventInfoFragment.java .

    
matiash 19.12.2014 22:10
quelle
4

Die erste Option, die Sie aufgelistet haben, funktioniert auf meinem Nexus S. Ich habe es gerade ausprobiert, um sicherzustellen, dass es funktioniert, wenn es von der Google Kalender-App kommt.

In meinem Fall erhalte ich myapp://event/1000 nicht ab, sondern erhalte eine tatsächliche URL eher wie https://myspecialdomain.com/blahblah . Der Browser beginnt zu laden, aber bevor es Zeit hat, etwas zu laden, wird es von meiner Anwendung ausgelagert.

Ich kann dir morgen meinen Code zeigen, wenn du willst.

    
Stephan Branczyk 10.04.2013 08:18
quelle
0

@matiash wie man das mit Google Kalender Api macht.

%Vor%     
Nouman Ch 21.09.2017 11:38
quelle

Tags und Links