4 Stimmen

Wie verwendet man Calendar Intent?

Ich versuche, einen Kalender von meiner App aus zu starten, damit die Benutzer ihre Termine dort eintragen können und meine App diese dann lesen kann.

Ich habe das Stück Code ausprobiert, das ich hier gefunden habe:

ComponentName cn; 
Intent i = new Intent();         
cn = new ComponentName("com.google.android.calendar", "com.android.calendar.LaunchActivity");
i.setComponent(cn);
startActivity(i);

und erhalte die Fehlermeldung

07-07 21:05:33.944: ERROR/AndroidRuntime(1089):
    Caused by: android.content.ActivityNotFoundException: Unable to find explicit
    activity class {com.google.android.calendar/com.android.calendar.LaunchActivity};
    have you declared this activity in your AndroidManifest.xml?

Ich habe die com.android.calendar.LaunchActivity zu meiner Android-Manifestdatei hinzugefügt und es funktioniert immer noch nicht...

Ich würde denken, dass dies nicht mit dem Emulator machbar ist? Ich tue dies in Android 3.0 (HoneyComb).

12voto

apb Punkte 403

Das hier, aus den Andriod-Dokumenten, hat bei mir funktioniert:

long startMillis = System.currentTimeMillis();
Uri.Builder builder = CalendarContract.CONTENT_URI.buildUpon();
builder.appendPath("time");
ContentUris.appendId(builder, startMillis);
intent = new Intent(Intent.ACTION_VIEW).setData(builder.build());
startActivity(intent);

Mehr Informationen hier: Android-Kalender-Dokumente .

4voto

CommonsWare Punkte 950864

Erstens wird es im Emulator nicht funktionieren, da die Kalender-App, die Sie zu verwenden versuchen, nicht im Emulator-Image enthalten ist.

Zweitens kann diese Anwendung auf einem Produktionsgerät vorhanden sein oder auch nicht. Jeder, der eine Intent unter Verwendung einer ComponentName (mit dem Hinweis auf das Bauteil einer anderen Person) ist bestenfalls ein Grund für Ärger.

Drittens werden Sie nicht in der Lage sein, "meine App diese Daten lesen zu lassen", selbst wenn der Nutzer sich entscheidet, ein Ereignis hinzuzufügen. Sie werden erst nach einer Synchronisierung über die GData-API von Google Calendar verfügbar sein, die möglicherweise nicht sofort stattfindet.

3voto

Robert Punkte 1926

Der einfachste Weg, den Google-Kalender ohne ein bestimmtes Datum zu öffnen:

Uri calendarUri = CalendarContract.CONTENT_URI
            .buildUpon()
            .appendPath("time")
            .build();
startActivity(new Intent(Intent.ACTION_VIEW, calendarUri));

1voto

Jesus Punkte 11

Sie müssen dies schreiben

setContentView(R.layout.tabla);
    ComponentName cn; 
    Intent i = new Intent();         
    cn = new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity");
    i.setComponent(cn);
    startActivity(i);

0voto

THE_DOM Punkte 4236

Sie müssen der App die Erlaubnis erteilen, den Kalender zu lesen. Versuchen Sie, dies zu Ihrer AndroidManifest.xml hinzuzufügen

<uses-permission android:name="android.permission.READ_CALENDAR"></uses-permission>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X