¿Cómo utilizar la intención del calendario?

Estoy intentando lanzar un calendario de mi app, así que puedo dejar a usuarios poner sus citas a él y después hacer que mi app lea ésos.

He probado el código que encontré aquí:

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

Y obtener el error

 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? 

Hice declarar el com.android.calendar.LaunchActivity a mi archivo de manifiesto android y todavía no está funcionando …

Creo que esto no es posible usar el emulador? Estoy haciendo esto en Android 3.0 (HoneyComb).

Esto, de Andriod docs, trabajó para mí:

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

Más información aquí: Android docs calendario .

En primer lugar, no funcionará en el emulador, ya que la aplicación Calendario que está intentando utilizar no está en la imagen del emulador.

En segundo lugar, esta aplicación puede o no estar en cualquier dispositivo de producción. Cualquier persona que cree un Intent usando un ComponentName (apuntando al ComponentName de otra persona) está pidiendo problemas en el mejor de los casos.

En tercer lugar, no podrá "hacer que mi aplicación los lea" de inmediato, incluso si el usuario elige agregar un evento. Solo estarán disponibles a través de Google Calendar GData API después de una sincronización, que puede que no sea inmediata.

Debes escribir esto

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

Debe darle permiso a la aplicación para leer el calendario. Prueba a añadir esto a tu AndroidManifest.xml

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

Si utiliza API 14 o superior, puede usar este código

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

La respuesta de apb traducida a MonoDroid es

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

La forma más sencilla de abrir el Calendario de Google sin una fecha determinada:

 Uri calendarUri = CalendarContract.CONTENT_URI .buildUpon() .appendPath("time") .build(); startActivity(new Intent(Intent.ACTION_VIEW, calendarUri)); 
  • ¿Cómo puedo compartir varios archivos a través de un intento?
  • Cómo evitar la pantalla en negro cuando Intent.FLAG_ACTIVITY_NEW_TASK | ¿Está establecido Intent.FLAG_ACTIVITY_CLEAR_TASK?
  • Android: Intenciones implícitas contra los receptores de difusión
  • Transmitir datos a BroadcastReceiver desde Actividad mediante DownloadManager
  • Android - Actividad del logotipo de la aplicación
  • Android: ¿Cómo reanudar la aplicación y la actividad de BroadcastReceiver?
  • ¿Puede una actividad de Android llamarse a sí misma?
  • Página de detalles de las aplicaciones de lanzamiento de Android
  • No se puede hacer startActivity () con Chooser preguntando una vez por aplicación
  • La actividad de los niños que se inició con la notificación no regresa a la navegación principal
  • ¿Cómo envío los datos de onPostExecute en un AsyncTask?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.