मैंने एंड्रॉइड ऐप के भीतर से एक नया कैलेंडर बनाने के तरीकों के लिए पूरी तरह जांच की है। मैंने देखा है कि एकमात्र तरीका नवीनतम एपीआई संस्करण में नए कैलेंडर एपीआई का उपयोग कर रहा है, लेकिन अगर आप CalendarContract.ACCOUNT_TYPE_LOCAL
का उपयोग करते हैं तो यह केवल काम करता है। यह आपको Google खाते से जुड़े कैलेंडर बनाने की अनुमति नहीं देगा, Google Calendar
के साथ सिंक्रनाइज़ किया जाएगा। यह कैलेंडर सूची में Google Calendar पर ऑनलाइन दिखाई नहीं देता है।एंड्रॉइड एक नया कैलेंडर जोड़ना
values.put(CalendarContract.Calendars.ACCOUNT_TYPE,
CalendarContract.ACCOUNT_TYPE_LOCAL);
मैंने खाता से खाता प्रकार का उपयोग करने का प्रयास किया है, लेकिन यह काम नहीं करता है। हालांकि यह किसी भी त्रुटि का उत्पादन प्रतीत नहीं होता है। नतीजा ठीक है।
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
यहाँ Calendar API
और SYNCADAPTER
(खाते पर टिप्पणी प्रकार) का उपयोग कर एक नया स्थानीय कैलेंडर जोड़ने के लिए पूरा कोड है। क्या किसी को पता है कि मैं क्या करने की कोशिश कर रहा हूं, यह भी संभव है?
AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType("com.google");
String accountName = "";
String accountType = "";
for (Account account : accounts) {
accountName = account.name;
accountType = account.type;
break;
}
ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Calendars.ACCOUNT_NAME, accountName);
//values.put(CalendarContract.Calendars.ACCOUNT_TYPE, accountType);
values.put(CalendarContract.Calendars.ACCOUNT_TYPE, CalendarContract.ACCOUNT_TYPE_LOCAL);
values.put(CalendarContract.Calendars.NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.CALENDAR_DISPLAY_NAME, DaysSince.CAL_NAME);
values.put(CalendarContract.Calendars.SYNC_EVENTS, 1);
values.put(CalendarContract.Calendars.VISIBLE, 1);
values.put(CalendarContract.Calendars.CALENDAR_ACCESS_LEVEL, CalendarContract.Calendars.CAL_ACCESS_OWNER);
values.put(CalendarContract.Calendars.OWNER_ACCOUNT, accountName);
values.put(CalendarContract.Calendars.DIRTY, 1);
values.put(CalendarContract.Calendars.CALENDAR_TIME_ZONE, TimeZone.getDefault().getID());
Uri calUri = CalendarContract.Calendars.CONTENT_URI;
calUri = calUri.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_NAME, accountName)
.appendQueryParameter(CalendarContract.Calendars.ACCOUNT_TYPE, accountType)
.build();
Uri result = cr.insert(calUri, values);
यदि आपकी समस्या हल हो गई है, तो कृपया अपने स्वयं के प्रश्न का उत्तर दें। आपको बैज मिलेगा और कई को मुफ्त/आसान सहायता मिलेगी। –
क्या आपके पास अपने प्रश्न के लिए कोई समाधान है? मैं वही देख रहा हूँ बीटीडब्ल्यू अच्छा सवाल है। –