5

Actualmente, mi aplicación tiene la capacidad de ayudar a un usuario añadir un solo evento a su calendario de Google:¿Cómo puedo ayudar a un usuario a suscribirse a un calendario externo al calendario de Google en un dispositivo Android?

final Intent calendarIntent = new Intent(Intent.ACTION_EDIT) 
     .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
     .setType("vnd.android.cursor.item/event") 
     .putExtra("beginTime", startTime) 
     .putExtra("endTime", startTime + 7200000L) // 2 hours 
     .putExtra("title", name) 
     .putExtra("description", description.toString()) 
     .putExtra("eventLocation", address); 

// later 
startActivity(calendarIntent); 

Sin embargo, muchos usuarios quieren añadir automáticamente todos sus eventos a su calendario de Google. Nuestro equipo de servidores hizo una alimentación ICS que las personas pueden subscribe to as an external Google calendar. Pero esto implica copiar y pegar URL y es algo confuso para los usuarios finales.

En la web, podemos vincular a las personas a una URL del formulario http://www.google.com/calendar/render?cid=OUR_ICS_URL, y podrán agregar el feed desde allí con relativa facilidad. Sin embargo, cuando visitas esta URL en el navegador de Android, obtienes todo tipo de ventanas emergentes extrañas sobre los sitios web de escritorio para dispositivos móviles frente a  , e incluso los usuarios avanzados de Android de nuestro equipo de desarrollo no pudieron encontrar cómo agregar el calendario desde allí. .

Otra cosa que investigué fue la API de Google Calendar, pero parece que su calendar list insert method necesita una ID de calendario de Google, no una URL para un calendario externo.

Entonces, ¿hay alguna buena solución aquí? Parece que debería haber una manera de ayudar a nuestros usuarios a suscribirse a sus calendarios sin que tengan que ir a sus escritorios y abrir un navegador web de tamaño completo. Pero nada de lo que he probado ha dado ningún resultado.

¿Alguna idea?

Respuesta

0

Quizás podría usar AuthSub para autenticar a sus usuarios, entonces podría usar el método de inserción de la lista de calendario. Creo que el Zend framework lo hace de esta manera.

+0

Por lo que puedo decir, el método de inserción de la lista de calendario solo puede aceptar ID de calendario de Google, no URL de calendario externas arbitrarias. ¿Me estoy perdiendo de algo? – mlc

+0

Supongo que tiene razón, pensé por un instante que habría una manera de reproducir la funcionalidad Zend framework getCalendarListFeed(), ya que indican en su documentación: "El servicio de calendario admite la recuperación de una lista de calendarios para los autenticados usuario. Esta es la misma lista de calendarios que se muestran en la interfaz de usuario de Google Calendar, excepto los marcados como 'ocultos' también están disponibles. Pero no soy un experto en Zend, por lo que analizar esto es algo que me supera. – Reggie

+0

Sí, acabo de consultar el código detrás de esa función (en el espacio de nombres Zend_Gdata_Calendar) y parece que están sacando manualmente la página web del calendario (en segundo plano) de la URL externa y extrayendo la información de su DOM. No es una solución elegante para una simple aplicación de Android, eso es seguro. – Reggie

Cuestiones relacionadas