2016-10-09 3 views
1

Wie würde ich einen Benutzer aus seinem Gerätekalender auswählen lassen?Benutzerauswahl Kalenderereignis

Android Calendar Provider Documentation und this question Zustand, dass Sie den Kalender anzeigen können eine Intent wie so mit:

long startMillis = System.currentTimeMillis(); 

// using content://com.android.calendar/time/<ms_since_epoch> 

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

Dies ist jedoch erlaubt nur uns, den Kalender für die Anzeige zu öffnen, Absichten verwenden.

Wie hätte ich die Absicht, die Ereignis-ID bei der Auswahl zurückzugeben?


UPDATE 1: Für grinst, im Developers Guide suchen, ich werde versuchen, einen Intent.ACTION_PICK statt Intent.ACTION_VIEW zu tun. ACTION_PICK ist nicht im Kalenderanbieter definiert, aber es lohnt sich. Beachten Sie, dass Intent.ACTION_VIEW zuvor funktioniert hat.

UPDATE 2: Wie wahrscheinlich erwartet, warf die Laufzeit dieses bei der Verwendung von ACTION_PICK:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.PICK dat=content://com.android.calendar/time/1475990157934 } 

Es scheint Absichten aus der Frage verwenden, sind?

Antwort

0

Scheint, dass Ihr Gerät keine Calendar Anwendung hat. Ich würde Ihnen empfehlen, intent.resolveActivity(getContext().getPackageManager() != null überprüfen jedes Mal, wenn Sie versuchen, eine implizite Absicht zu senden. Der einzige Weg, Kalenderinformationen ohne Calendar App zu erhalten, ist ein Kalender Content-Provider zu verwenden, wie es beschrieben ist here

+0

Lassen Sie mich meine Updates klären, hat ACTION_VIEW die Kalender-App öffnen, aber ACTION_PICK den Fehler warf. –

Verwandte Themen