Come utilizzare l'intento del calendario?

Sto provando a lanciare un calendario dalla mia app, quindi posso permettere agli utenti di mettere i loro appuntamenti e poi la mia applicazione leggerà.

Ho provato il pezzo di codice che ho trovato qui:

  • Facebook SDK dos non restituisce un'email
  • È ansible cambiare l'icona del button di scelta rapida in un gruppo di pulsanti di androidi
  • come modificare dynamicmente le voci di elenco nella ricerca tramite AutoCompleteTextView?
  • Android hamburger / icona freccia cambia colore dinamico
  • Perché gli elementi di ListView non crescono per avvolgere il loro contenuto?
  • Errore di memory in android a causa della dimensione del mazzo aumentando
  • ComponentName cn; Intent i = new Intent(); cn = new ComponentName("com.google.android.calendar", "com.android.calendar.LaunchActivity"); i.setComponent(cn); startActivity(i); 

    e get l'errore

     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? 

    Ho dichiarato il com.android.calendar.LaunchActivity al mio file di manifesti android e ancora non funziona …

    Penserei che questo non sia ansible utilizzando l'emulatore? Lo sto facendo in Android 3.0 (HoneyComb).

  • Come cambiare tab sul clic del button in Android?
  • EditText: differenza tra la modifica di text da setText () o da tastiera
  • Elenco completo di tutte le cartelle delle risorse Android?
  • PopupWindow in android
  • R.java non può essere modificata
  • La class di attività non esiste
  • 7 Solutions collect form web for “Come utilizzare l'intento del calendario?”

    Questo, da Andriod docs, ha lavorato per me:

     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); 

    Ulteriori informazioni qui: Android calendar docs .

    In primo luogo, non funziona nell'emulatore, in quanto l'applicazione Calendario che si sta tentando di utilizzare non è nell'image dell'emulatore.

    In secondo luogo, questa applicazione può o non può essere su alcun dispositivo di produzione. Chiunque crea Intent usando un ComponentName (che indica il ComponentName di qualcun altro) sta chiedendo al meglio i problemi.

    In terzo luogo, non sarà ansible "avere la mia app letto quei" subito, anche se l'utente decide di aggiungere un evento. Saranno disponibili solo tramite l'API Google Calendar GData dopo una sincronizzazione, che potrebbe non essere immediata.

    devi scrivere questo

     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); 

    Devi dare l'authorization dell'applicazione per leggere il calendario. Provate ad aggiungere questo al tuo AndroidManifest.xml

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

    Se si utilizza API 14 o superiore è ansible utilizzare questo codice

     Intent intent = new Intent(Intent.ACTION_INSERT); intent.setData(CalendarContract.Events.CONTENT_URI); startActivity(intent) 

    La risposta di apb tradotta in MonoDroid è

     long startMillis = Java.Lang.JavaSystem.CurrentTimeMillis( ); Uri.Builder builder = Android.Provider.CalendarContract.ContentUri.BuildUpon( ); builder.AppendPath( "time" ); ContentUris.AppendId( builder,startMillis ); Intent intent = new Intent( Intent.ActionView ); intent.SetData( builder.Build() ); StartActivity( intent ); 

    Il modo più semplice per aprire il Google Calendar senza una determinata data:

     Uri calendarUri = CalendarContract.CONTENT_URI .buildUpon() .appendPath("time") .build(); startActivity(new Intent(Intent.ACTION_VIEW, calendarUri)); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.