के साथ नया सिंक किया गया कैलेंडर बनाएं, मैं कुछ खातों से प्राप्त होने वाली घटनाओं को भरने के लिए अपने खाते पर एक कैलेंडर बनाने की कोशिश कर रहा हूं। मैंने कुछ नया एंड्रॉइड 4.0 कैलेंडर उदाहरण खोजा और पाया है जिसे मैंने प्राप्त करने के लिए संशोधित किया है। समस्या यह है कि कैलेंडर बनाया गया है, घटनाओं से भरा है लेकिन Google कैलेंडर के साथ समन्वयित नहीं है, इसलिए अगली सिंक में इसे मिटा दिया गया है।एंड्रॉइड एपीआई
public static Uri createEventWithName(Context ctx, long id, String name, String data) {
long startMillis = 0;
long endMillis = 0;
int id2=(int)id;
String[] divisi = data.split("/");
Calendar beginTime = Calendar.getInstance();
beginTime.set(2012,Integer.parseInt(divisi[0])-1, Integer.parseInt(divisi[1]));
startMillis = beginTime.getTimeInMillis();
Calendar endTime = Calendar.getInstance();
endTime.set(2012,Integer.parseInt(divisi[0])-1, Integer.parseInt(divisi[1]));
endMillis = endTime.getTimeInMillis();
ContentValues cv = new ContentValues();
cv.put(Events.TITLE, name);
cv.put(Events.DTSTART, startMillis);
cv.put(Events.DTEND, endMillis);
cv.put(Events.CALENDAR_ID, id2);
Log.d("aggiungo a calendario",Integer.toString(id2));
cv.put(Events.EVENT_TIMEZONE, TimeZone.getDefault().toString());
//cv.put(Events.RRULE, "FREQ=DAILY;INTERVAL=2");
Uri newEvent = ctx.getContentResolver().insert(CalendarContract.Events.CONTENT_URI, cv);
return newEvent;
}
:
public static Uri createCalendarWithName(Context ctx, String name,String accountName) {
Uri target = Uri.parse(CalendarContract.Calendars.CONTENT_URI.toString());
target = target.buildUpon().appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, accountName)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, "com.google").build();
ContentValues values = new ContentValues();
values.put(Calendars.ACCOUNT_NAME, accountName);
values.put(Calendars.ACCOUNT_TYPE, "com.google");
values.put(Calendars.NAME, name);
values.put(Calendars.CALENDAR_DISPLAY_NAME, name);
values.put(Calendars.CALENDAR_COLOR, 0x00FF00);
values.put(Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_ROOT);
values.put(Calendars.OWNER_ACCOUNT, accountName);
values.put(Calendars.VISIBLE, 1);
values.put(Calendars.SYNC_EVENTS, 1);
values.put(Calendars.CALENDAR_TIME_ZONE, "Europe/Rome");
values.put(Calendars.CAN_PARTIALLY_UPDATE, 1);
values.put(Calendars.CAL_SYNC1, "https://www.google.com/calendar/feeds/" + accountName + "/private/full");
values.put(Calendars.CAL_SYNC2, "https://www.google.com/calendar/feeds/default/allcalendars/full/" + accountName);
values.put(Calendars.CAL_SYNC3, "https://www.google.com/calendar/feeds/default/allcalendars/full/" + accountName);
values.put(Calendars.CAL_SYNC4, 1);
values.put(Calendars.CAL_SYNC5, 0);
values.put(Calendars.CAL_SYNC8, System.currentTimeMillis());
Uri newCalendar = ctx.getContentResolver().insert(target, values);
return newCalendar;
}
और है कि एक सहभागिता के बिना नई घटना बनाने:
इस नए कैलेंडर जोड़ने अगर alreay नहीं भी मौजूद हैं के लिए एक है: funcion मैं का उपयोग इन कर रहे हैं
मैं एंड्रॉइड प्रोग्रामिंग में इतना अनुभवी नहीं हूं इसलिए मुझे लगता है कि यह एक बेवकूफ सवाल है =) मैंने उस खाते को पढ़ लिया है नाम और खाता प्रकार वही होना चाहिए जो एंड्रॉइड डिवाइस पर संग्रहीत है, अन्यथा ईवेंट रद्द कर दिया गया है। मुझे एंड्रॉइड एपीआई से खाता नाम मिलता है और मुझे लगता है कि वे सही हैं। खाता प्रकार अन्य के लिए काम करता प्रतीत होता है ....
मेरी मदद करने वाले किसी के लिए धन्यवाद!
कोई बेवकूफ सवाल नीचे के रूप में है, केवल लोगों को आप अभी तक उत्तर नहीं पता के लिए :) – Codeman