android 删除系统日历事件,android – 从日历中删除事件不被删除 您所在的位置:网站首页 三星日历事件怎么删除 android 删除系统日历事件,android – 从日历中删除事件不被删除

android 删除系统日历事件,android – 从日历中删除事件不被删除

2023-05-19 07:32| 来源: 网络整理| 查看: 265

我试图让我的应用程序向用户的日历添加提醒。代码搜索标题和开始日期,以便在添加之前检查日历中是否已经存在该事件(以便不具有重复项)。我的问题是:如果我手动从日历中删除事件(使用日历),事件将从日历中消失(我正在查看我的日历,在日历应用程序中无法看到它),而不是从数据库中查看。我不明白的另一件事是我试图以编程方式删除事件,但仍然没有删除。

这是我的代码片段:

Cursor cur = null;

ContentResolver cr = getContentResolver();

String calUriString = "content://com.android.calendar/events";

Uri cal=Uri.parse(calUriString);

String[] EVENT_PROJECTION=new String[]{"calendar_id","title","dtstart","_id"};

String selection = "((" + "calendar_id" + " = 1) AND ("

+ "title" + " LIKE '"+name+"') AND ("

+ "dtstart" + " = "+String.valueOf(c.getTimeInMillis())+"))";

cur = cr.query(cal, EVENT_PROJECTION, selection, null, null);

boolean found=false;

if(cur!=null)

if(cur.moveToFirst()){

DatabaseUtils.dumpCursor(cur);/*Just to view my results (which always include the deleted events)*/

do{

if(cur.getString(1).equals(name)){

/*I use this part to try to remove the events manually*/

Uri eventUri =ContentUris.withAppendedId(cal, Long.valueOf(cur.getString(3)));

String reminderUriString = "content://com.android.calendar/reminders";

Uri remUri =Uri.parse(reminderUriString);

cr.delete(remUri, "event_id="+cur.getString(3), null);

cr.delete(eventUri, null, null);

/*It is not working also*/

Toast.makeText(getApplicationContext(), "Event already exists in Calendar", Toast.LENGTH_LONG).show();

found=true;

//break;

}

}while(cur.moveToNext());

}

cur.close();

if(found){

/*Event is found even if I remove it from the Calendar manually and even if I remove it programmatically using cr.delete()*/

}

else{

values.put("calendar_id",1); /*I am using the same Calendar that I query, or is this wrong*/

values.put("title", name);

/*More values are added*/

Uri calendarUri = cr.insert(cal, values);

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

String reminderUriString = "content://com.android.calendar/reminders";

ContentValues reminderValues = new ContentValues();

reminderValues.put("event_id", eventID);

reminderValues.put("minutes", 5);

reminderValues.put("method", 1);

Uri reminderUri = getApplicationContext().getContentResolver().insert(Uri.parse(reminderUriString), reminderValues);

}

为什么从日历应用程序中删除它们后仍然存在这些事件,为什么我甚至无法通过编程方式将其删除?

更新

问题仅在我使用calendar_id = 1插入和删除。其他calendar_ids工作正常。

更新2

我测试了三星Galaxy S1的代码,它的工作正常。这似乎是三星Galaxy S3的一个问题(我有我的问题,我认为这是S-planner应用程序中的一个错误)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有