PhoneGap / Cordova calendar integration (Android)

Sto costruendo un'applicazione Android utilizzando PhoneGap (aka Cordova) e ho difficoltà a get un'integrazione di calendari per funzionare. Disclaimer: sono un noob per Android e PhoneGap, per favore, sopporti con me.

Tutto quello che sto cercando è aggiungere un evento al calendario dell'utente. Dopo questo tutorial , ho creato un plugin che tenta di lanciare un intento di calendario. Il codice ha il seguente aspetto:

  • JSON Android ListView
  • Android - posso aumentare il textSize per il widget di NumberPicker?
  • ListFragment OnListItemClick non essere chiamato
  • Popolare solo la visualizzazione con i messaggi recuperati dal database?
  • Mostra l'image di formato Tiff in Android
  • Qual è il modo più efficace per Android per call chiamate API Web HTTP che restituiscono una risposta JSON?
  • public class CalendarPlugin extends Plugin { public static final String NATIVE_ACTION_STRING="addToCalendar"; public static final String SUCCESS_PARAMETER="success"; @Override public PluginResult execute(String action, JSONArray data, String callbackId) { if (NATIVE_ACTION_STRING.equals(action)) { Calendar beginTime = Calendar.getInstance(); beginTime.set(2012, 6, 19, 7, 30); Calendar endTime = Calendar.getInstance(); endTime.set(2012, 6, 19, 8, 30); Intent calIntent = new Intent((Context) this.ctx, CalendarPlugin.class) .setAction(Intent.ACTION_INSERT) .putExtra(Events.TITLE, "A new event") .putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true) .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis()) .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis()); this.ctx.startActivity(calIntent); return new PluginResult(PluginResult.Status.OK, "Smashing success"); } return new PluginResult(PluginResult.Status.ERROR, "Didn't work bro"); } } 

    Il codice Javascript per ricall questo plugin è standard:

     var CalendarPlugin = { callNativeFunction: function (success, fail, resultType) { if (cordova) { return cordova.exec( success, fail, "org.myorg.appname.CalendarPlugin", "addToCalendar", [resultType]); } else { alert("Calendar function is not available here."); } } }; 

    Viene richiamato il codice Android (confermato con un punto di interruzione). Ma il risultato inviato al codice Javascript è un errore:

    Imansible trovare la class di attività esplicita {org.myorg.appname / org.myorg.appname.CalendarPlugin}; hai dichiarato questa attività nel tuo AndroidManifest.xml?

    Non c'è alcuna menzione di aggiungere a AndroidManifest.xml nel tutorial, cosa che mi port a credere che mi manca qualcosa (anche il codice CalendarPlugin viene invocato correttamente, quindi come potrebbe esserci un errore dicendo che la class CalendarPlugin non è stata trovata? ). Se devo aggiungere Calendario al manifesto, come faccio a farlo?

  • Android: Quando è distrutto il context OpenGL?
  • Android: Implementazione di progressbar e "caricamento ..." per Endless List come Android Market
  • Può qualcuno spiegare l'attr?
  • Come utilizzare i dati delle preferenze condivise in diverse classi in android?
  • Webview di Android dà il messaggio net :: ERR_CACHE_MISS
  • come leggere e scrivere file doc e excel in android?
  • 2 Solutions collect form web for “PhoneGap / Cordova calendar integration (Android)”

    Il tutorial citato non copre le intenzioni. L'intento che stai inviando i tuoi dati è la tua propria class CalendarPlugIn che non è ciò che vuoi in quanto non gestisce l'intento.

    Vedere http://developer.android.com/guide/topics/intents/intents-filters.html riguardo agli intenti.

    Anche se si cerca in giro per SO, trovenetworking che fino a quando ICS non c'era nemless un modo per aggiungere cose al calendario Google ufficialmente senza utilizzare un servizio web. Ci sono modi per farlo in modo non ufficiale, ma sono soggetti ai capricci di Google o degli ODM stessi.

    aggiornato:

    Devi essere in grado di utilizzare intenti con Phonegap (tramite un plugin). Ho aggiunto solo il commento per notare che se hai intenzione di integrare il calendario nella tua app, probabilmente dovrai fare un po 'di ricerca se vuoi supportre la maggior parte dei dispositivi Android. Se sei interessato ad aggiungere events del calendario nell'indagine ICS: http://developer.android.com/reference/android/provider/CalendarContract.html

    Op's Edit

    Ho solo bisogno di riparare il constructor di intenti , e questo ha funzionato come previsto:

     Uri uri = Uri.parse("content://com.android.calendar/events"); Intent calIntent = new Intent("android.intent.action.INSERT", uri) 

    Per farlo funzionare per tutte le versioni di android sdk provare questo codice seguente

      Intent intent = new Intent(Intent.ACTION_EDIT); intent.setType("vnd.android.cursor.item/event"); 

    Ho provato a lavorare per me.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.