दिलचस्प पोस्ट
स्विफ्ट कोड को ऑब्जेक्टिव-सी में कैसे आयात करें जावास्क्रिप्ट में एक एकल उद्धरण (') कैसे बचें? एच का उद्देश्य: आउटपुट लेबल और इसकी "के लिए" विशेषता चयन कथन में NOLOCK संकेत का प्रभाव एमडी 5 डीकोडिंग वे यह कैसे करते हैं? वैकल्पिक रूप से सामग्री स्क्रिप्ट इंजेक्षन एक JSON सूची में तत्वों का क्रम संरक्षित है? एक सीमांकक के आधार पर तारों की एक सरणी में एक स्ट्रिंग विभाजित करें एंड्रॉइड के बारे में खत्म () सीएसएस संक्रमण पर कॉलबैक अल्पविराम से अलग स्ट्रिंग में मानों को ढूँढने के लिए MySQL क्वेरी अजगर खोल में तीर कुंजियों को दबाने पर बचने के पात्रों को देखकर में अंतर्निहित एनिमेशन को अक्षम करना – C से C ++ फ़ंक्शन कैसे कॉल करें? SWFobject का उपयोग करके, HTML कंटेनर को सूचित करने के लिए कि SWF समाप्त हो गया है

Android में कैलेंडर ईवेंट कैसे जोड़ें?

मैं सिर्फ एंड्रॉइड पर गति करने जा रहा हूं, और आज एक प्रोजेक्ट मीटिंग में किसी ने कहा कि एंड्रॉइड के पास कोई नेटी कैलेंडर ऐप नहीं है इसलिए उपयोगकर्ता केवल वे कैलेंडर ऐप का उपयोग करते हैं जो वे पसंद करते हैं।

क्या यह सच है, और यदि ऐसा है तो मैं कार्यक्रम के उपयोगकर्ता के कैलेंडर में एक घटना कैसे जोड़ूं? क्या कोई समान एपीआई है जो वे सभी साझा करते हैं?

इसकी कीमत क्या है, हम शायद एंड्रॉइड 2.x लक्षित कर रहे हैं।

वेब के समाधान से एकत्रित समाधान "Android में कैलेंडर ईवेंट कैसे जोड़ें?"

मैं कार्यक्रम के उपयोगकर्ता के कैलेंडर में एक घटना कैसे जोड़ूं?

कौन सा कैलेंडर?

क्या कोई समान एपीआई है जो वे सभी साझा करते हैं?

नहीं, विंडोज कैलेंडर एप्स के लिए एक "आम एपीआई वे सभी शेयर" से ज्यादा नहीं हैं कुछ सामान्य डेटा स्वरूप (जैसे, iCalendar) और इंटरनेट प्रोटोकॉल (जैसे, CalDAV) हैं, लेकिन कोई सामान्य API नहीं है कुछ कैलेंडर ऐप्स भी एक एपीआई प्रदान नहीं करते हैं।

यदि विशिष्ट कैलेंडर अनुप्रयोग हैं जिनसे आप एकीकृत कराना चाहते हैं, तो उनके डेवलपर्स से संपर्क करें और निर्धारित करें कि क्या वे एपीआई प्रदान करते हैं। इसलिए, उदाहरण के लिए, एंड्रॉइड ओपन सोर्स प्रोजेक्ट से कैलेंडर एप्लिकेशन, जो कि माया का हवाला देते हैं, दस्तावेज और समर्थित एपीआई प्रदान नहीं करता है। Google ने डेवलपर्स को स्पष्ट रूप से बताया है कि ट्यूटोरियल मेरा का उल्लेख करते हुए तकनीकों का उपयोग नहीं किया गया है।

एक अन्य विकल्प आपके लिए प्रश्न में इंटरनेट कैलेंडर में ईवेंट जोड़ने के लिए है। उदाहरण के लिए, एंड्रॉइड ओपन सोर्स प्रोजेक्ट से कैलेंडर एप्लिकेशन में इवेंट जोड़ने का सबसे अच्छा तरीका है कि उपयुक्त जीडाटा एपीआई के माध्यम से उपयोगकर्ता के Google कैलेंडर में इवेंट को जोड़ना है।


अद्यतन करें

एंड्रॉइड 4.0 (एपीआई स्तर 14) ने एक CalendarContract ContentProvider जोड़ा।

अपने कोड में इसे आज़माएं:

 Calendar cal = Calendar.getInstance(); Intent intent = new Intent(Intent.ACTION_EDIT); intent.setType("vnd.android.cursor.item/event"); intent.putExtra("beginTime", cal.getTimeInMillis()); intent.putExtra("allDay", true); intent.putExtra("rrule", "FREQ=YEARLY"); intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000); intent.putExtra("title", "A Test Event from android app"); startActivity(intent); 

अनुमति जोड़ें ..

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"...> <uses-sdk android:minSdkVersion="14" /> <uses-permission android:name="android.permission.READ_CALENDAR" /> <uses-permission android:name="android.permission.WRITE_CALENDAR" /> ... </manifest> 

अपने कोड में इस एपीआई का प्रयोग करें .. यह इवेंट सम्मिलित करने में आपकी सहायता करेगा, रिमाइंडर के साथ ईवेंट और मीटिंग के साथ इवेंट सक्षम किया जा सकता है … यह एपीआई मंच 2.1 और इसके बाद के संस्करण के लिए काम करता है जो सामग्री के बजाय 2.1 का उपयोग करते हुए कम है। .android.calendar / ईवेंट सामग्री का उपयोग करें: // कैलेंडर / ईवेंट

  public static long pushAppointmentsToCalender(Activity curActivity, String title, String addInfo, String place, int status, long startDate, boolean needReminder, boolean needMailService) { /***************** Event: note(without alert) *******************/ String eventUriString = "content://com.android.calendar/events"; ContentValues eventValues = new ContentValues(); eventValues.put("calendar_id", 1); // id, We need to choose from // our mobile for primary // its 1 eventValues.put("title", title); eventValues.put("description", addInfo); eventValues.put("eventLocation", place); long endDate = startDate + 1000 * 60 * 60; // For next 1hr eventValues.put("dtstart", startDate); eventValues.put("dtend", endDate); // values.put("allDay", 1); //If it is bithday alarm or such // kind (which should remind me for whole day) 0 for false, 1 // for true eventValues.put("eventStatus", status); // This information is // sufficient for most // entries tentative (0), // confirmed (1) or canceled // (2): eventValues.put("eventTimezone", "UTC/GMT +2:00"); /*Comment below visibility and transparency column to avoid java.lang.IllegalArgumentException column visibility is invalid error */ /*eventValues.put("visibility", 3); // visibility to default (0), // confidential (1), private // (2), or public (3): eventValues.put("transparency", 0); // You can control whether // an event consumes time // opaque (0) or transparent // (1). */ eventValues.put("hasAlarm", 1); // 0 for false, 1 for true Uri eventUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(eventUriString), eventValues); long eventID = Long.parseLong(eventUri.getLastPathSegment()); if (needReminder) { /***************** Event: Reminder(with alert) Adding reminder to event *******************/ String reminderUriString = "content://com.android.calendar/reminders"; ContentValues reminderValues = new ContentValues(); reminderValues.put("event_id", eventID); reminderValues.put("minutes", 5); // Default value of the // system. Minutes is a // integer reminderValues.put("method", 1); // Alert Methods: Default(0), // Alert(1), Email(2), // SMS(3) Uri reminderUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues); } /***************** Event: Meeting(without alert) Adding Attendies to the meeting *******************/ if (needMailService) { String attendeuesesUriString = "content://com.android.calendar/attendees"; /******** * To add multiple attendees need to insert ContentValues multiple * times ***********/ ContentValues attendeesValues = new ContentValues(); attendeesValues.put("event_id", eventID); attendeesValues.put("attendeeName", "xxxxx"); // Attendees name attendeesValues.put("attendeeEmail", "yyyy@gmail.com");// Attendee // E // mail // id attendeesValues.put("attendeeRelationship", 0); // Relationship_Attendee(1), // Relationship_None(0), // Organizer(2), // Performer(3), // Speaker(4) attendeesValues.put("attendeeType", 0); // None(0), Optional(1), // Required(2), Resource(3) attendeesValues.put("attendeeStatus", 0); // NOne(0), Accepted(1), // Decline(2), // Invited(3), // Tentative(4) Uri attendeuesesUri = curActivity.getApplicationContext().getContentResolver().insert(Uri.parse(attendeuesesUriString), attendeesValues); } return eventID; } 

मैंने नीचे दिए गए कोड का इस्तेमाल किया है, यह आईसीएस में डिफ़ॉल्ट उपकरण कैलेंडर में घटना को जोड़ने के लिए और आईसीएस से कम संस्करण पर मेरी समस्या को हल करता है I

  if (Build.VERSION.SDK_INT >= 14) { Intent intent = new Intent(Intent.ACTION_INSERT) .setData(Events.CONTENT_URI) .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis()) .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis()) .putExtra(Events.TITLE, "Yoga") .putExtra(Events.DESCRIPTION, "Group class") .putExtra(Events.EVENT_LOCATION, "The gym") .putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY) .putExtra(Intent.EXTRA_EMAIL, "rowan@example.com,trevor@example.com"); startActivity(intent); } else { Calendar cal = Calendar.getInstance(); Intent intent = new Intent(Intent.ACTION_EDIT); intent.setType("vnd.android.cursor.item/event"); intent.putExtra("beginTime", cal.getTimeInMillis()); intent.putExtra("allDay", true); intent.putExtra("rrule", "FREQ=YEARLY"); intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000); intent.putExtra("title", "A Test Event from android app"); startActivity(intent); } 

आशा है कि यह मदद मिलेगी …..

एंड्रॉइड वर्जन 4.0 आधिकारिक एपीआई और उपलब्ध कैलेंडर प्रदाताओं के साथ बातचीत करने के लिए उपलब्ध हैं।

Google कैलेंडर "मूल" कैलेंडर ऐप है जहां तक ​​मुझे पता है, सभी फोन इंस्टॉल किए गए संस्करण के साथ आते हैं, और डिफ़ॉल्ट एसडीके एक संस्करण प्रदान करता है।

आप इसके साथ काम करने के लिए इस ट्यूटोरियल की जांच कर सकते हैं।

इसे इस्तेमाल करे ,

  Calendar beginTime = Calendar.getInstance(); beginTime.set(yearInt, monthInt - 1, dayInt, 7, 30); ContentValues l_event = new ContentValues(); l_event.put("calendar_id", CalIds[0]); l_event.put("title", "event"); l_event.put("description", "This is test event"); l_event.put("eventLocation", "School"); l_event.put("dtstart", beginTime.getTimeInMillis()); l_event.put("dtend", beginTime.getTimeInMillis()); l_event.put("allDay", 0); l_event.put("rrule", "FREQ=YEARLY"); // status: 0~ tentative; 1~ confirmed; 2~ canceled // l_event.put("eventStatus", 1); l_event.put("eventTimezone", "India"); Uri l_eventUri; if (Build.VERSION.SDK_INT >= 8) { l_eventUri = Uri.parse("content://com.android.calendar/events"); } else { l_eventUri = Uri.parse("content://calendar/events"); } Uri l_uri = MainActivity.this.getContentResolver() .insert(l_eventUri, l_event); 

बस के मामले में अगर किसी को Xamarin के लिए सी # की जरूरत है:

  Intent intent = new Intent(Intent.ActionInsert); intent.SetData(Android.Provider.CalendarContract.Events.ContentUri); intent.PutExtra(Android.Provider.CalendarContract.ExtraEventBeginTime, Utils.Tools.CurrentTimeMillis(game.Date)); intent.PutExtra(Android.Provider.CalendarContract.EventsColumns.AllDay, false); intent.PutExtra(Android.Provider.CalendarContract.EventsColumns.EventLocation, "Location"); intent.PutExtra(Android.Provider.CalendarContract.EventsColumns.Description, "Description"); intent.PutExtra(Android.Provider.CalendarContract.ExtraEventEndTime, Utils.Tools.CurrentTimeMillis(game.Date.AddHours(2))); intent.PutExtra(Android.Provider.CalendarContract.EventsColumns.Title, "Title"); StartActivity(intent); 

सहायक कार्यों:

  private static readonly DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public static long CurrentTimeMillis(DateTime date) { return (long)(date.ToUniversalTime() - Jan1st1970).TotalMilliseconds; } 

यदि आपके पास तिथि और समय के साथ कोई दिनांक स्ट्रिंग है

उदाहरण के लिए String givenDateString = pojoModel.getDate()/* Format dd-MMM-yyyy hh:mm:ss */

कैलेंडर को तिथि और समय के साथ एक ईवेंट जोड़ने के लिए निम्न कोड का उपयोग करें

 Calendar cal = Calendar.getInstance(); cal.setTime(new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss").parse(givenDateString)); Intent intent = new Intent(Intent.ACTION_EDIT); intent.setType("vnd.android.cursor.item/event"); intent.putExtra("beginTime", cal.getTimeInMillis()); intent.putExtra("allDay", false); intent.putExtra("rrule", "FREQ=YEARLY"); intent.putExtra("endTime",cal.getTimeInMillis() + 60 * 60 * 1000); intent.putExtra("title", " Test Title"); startActivity(intent); 

आपको झंडा जोड़ना होगा:

 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

या आप त्रुटि के साथ:

एक गतिविधि संदर्भ के बाहर startActivity() को FLAG_ACTIVITY_NEW_TASK आवश्यकता होती है