gpt4 book ai didi

android - 以编程方式将事件添加到日历

转载 作者:行者123 更新时间:2023-11-30 00:34:30 26 4
gpt4 key购买 nike

我在 Marshmellow 设备中使用以下代码以编程方式将事件添加到日历,但它不起作用。任何想法?我在日历应用程序中看不到此事件。

        long startMillis = 0;
long endMillis = 0;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startDate = null, endDate = null;
try{
startDate = simpleDateFormat.parse("2017-05-01 01:30:00");
startMillis = startDate.getTime();
endDate = simpleDateFormat.parse("2017-05-01 03:30:00");
endMillis = endDate.getTime();
}catch (ParseException e){
e.printStackTrace();
}

ContentResolver cr = this.getContentResolver();
ContentValues values = new ContentValues();
TimeZone timeZone = TimeZone.getDefault();
values.put(CalendarContract.Events.DTSTART, startMillis);
values.put(CalendarContract.Events.DTEND, endMillis);
values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
values.put(CalendarContract.Events.TITLE, "Hello Title");
values.put(CalendarContract.Events.DESCRIPTION, "Add events to Calendar");
values.put(CalendarContract.Events.CALENDAR_ID, 879);
Uri uri = cr.insert(CalendarContract.Events.CONTENT_URI, values);

PS:如果只有一个 gmail 帐户与日历应用程序同步,它就可以工作。

最佳答案

我也找到了很多解决方案,最后我找到了解决方案并成功添加了日程表事件。

 Step -1 > Enable Google calnedar API From google console.
Step - 2 > Add the permission in Androidmanifest.xml

<uses-permission android:name="android.permission.WRITE_CALENDAR"/>

Step =3 > Add library for checking Permissions in your .gradle

compile 'com.karumi:dexter:4.1.0'




Dexter.withActivity(YoutActivityName.this)
.withPermission(Manifest.permission.WRITE_CALENDAR)
.withListener(new PermissionListener()
{
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
try {

int calenderId = -1;
String calenderEmaillAddress = "sathishmicit2012@gmail.com";
String[] projection = new String[]{
CalendarContract.Calendars._ID,
CalendarContract.Calendars.ACCOUNT_NAME};
ContentResolver cr = context.getContentResolver();
Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/calendars"), projection,
CalendarContract.Calendars.ACCOUNT_NAME + "=? and (" +
CalendarContract.Calendars.NAME + "=? or " +
CalendarContract.Calendars.CALENDAR_DISPLAY_NAME + "=?)",
new String[]{calenderEmaillAddress, calenderEmaillAddress,
calenderEmaillAddress}, null);

if (cursor.moveToFirst()) {

if (cursor.getString(1).equals(calenderEmaillAddress)) {

calenderId = cursor.getInt(0);
}
}


long start2 = Calendar.getInstance().getTimeInMillis(); // 2011-02-12 12h00
long end2 = Calendar.getInstance().getTimeInMillis() + (4 * 60 * 60 * 1000); // 2011-02-12 13h00

String title = "This is my demo test with alaram with 5 minutes";

ContentValues cvEvent = new ContentValues();
cvEvent.put("calendar_id", calenderId);
cvEvent.put(CalendarContract.Events.TITLE, title);

cvEvent.put(CalendarContract.Events.DESCRIPTION, String.valueOf(start2));
cvEvent.put(CalendarContract.Events.EVENT_LOCATION, "Bhatar,Surat");
cvEvent.put("dtstart", start2);
cvEvent.put("hasAlarm", 1);
cvEvent.put("dtend", end2);

cvEvent.put("eventTimezone", TimeZone.getDefault().getID());


Uri uri = getContentResolver().insert(Uri.parse("content://com.android.calendar/events"), cvEvent);


// get the event ID that is the last element in the Uri

long eventID = Long.parseLong(uri.getLastPathSegment());


ContentValues values = new ContentValues();

values.put(CalendarContract.Reminders.MINUTES, 2);
values.put(CalendarContract.Reminders.EVENT_ID, eventID);
values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALARM);
cr.insert(CalendarContract.Reminders.CONTENT_URI, values);
//Uri uri = cr.insert(CalendarContract.Reminders.CONTENT_URI, values);


} catch (Exception e) {
e.printStackTrace();
}


}

@Override
public void onPermissionDenied(PermissionDeniedResponse response) {/* ... */}

@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {/* ... */}
}).check();

关于android - 以编程方式将事件添加到日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com