Tôi đã thêm một sự kiện lịch được lập trình bằng cách sử dụng api caledarcontract và nhận được một eventId. Tương tự như vậy tôi đã thêm một lời nhắc nhở cho sự kiện này và lưu lời nhắc nhở quá. Bây giờ tôi không muốn một lời nhắc nhở cho sự kiện này (hoặc tôi muốn tắt lời nhắc nhở), vì vậy tôi đang cố gắng để xóa các lời nhắc nhở bằng cách sử dụng remindId nhưng tôi không thể xóa. Tôi đã cố gắng để xóa các lời nhắc bằng cách sử dụng eventId quá nhưng nó không hoạt động.Không thể xóa lời nhắc từ Lịch trong Android
public int AddEventToCalendar(String calendarId, Entity entity) {
// TODO Auto-generated method stub
ContentValues event = new ContentValues();
event.put("calendar_id", calendarId);
event.put("title", entity.description);
event.put("dtstart", System.currentTimeMillis());
event.put("dtend", System.currentTimeMillis() + 3600*1000);
event.put("allDay", 0);
//status: 0~ tentative; 1~ confirmed; 2~ canceled
event.put("eventStatus", 1);
//0~ default; 1~ confidential; 2~ private; 3~ public
event.put("visibility", 0);
//0~ opaque, no timing conflict is allowed; 1~ transparency, allow overlap of scheduling
event.put("transparency", 0);
//0~ false; 1~ true
event.put("hasAlarm", 1);
Uri add_eventUri;
if (Build.VERSION.SDK_INT >= 8) {
add_eventUri = Uri.parse("content://com.android.calendar/events");
} else {
add_eventUri = Uri.parse("content://calendar/events");
}
Uri l_uri = context.getContentResolver().insert(add_eventUri, event);
if(l_uri != null)
{
long eventID = Long.parseLong(l_uri.getLastPathSegment());
return (int) eventID;
}
else
return 0;
}
public int AddReminderOnEvent(Entity entity)
{
if(entity.eventId != 0)
{
ContentValues reminderValues = new ContentValues();
reminderValues.put("event_id", entity.eventId);
reminderValues.put("method", 1);// will alert the user with a reminder notification
reminderValues.put("minutes", 0);// number of minutes before the start time of the event to fire a reminder
Uri reminder_eventUri;
if (Build.VERSION.SDK_INT >= 8) {
reminder_eventUri = Uri.parse("content://com.android.calendar/reminders");
} else {
reminder_eventUri = Uri.parse("content://calendar/reminders");
}
Uri r_uri = context.getContentResolver().insert(reminder_eventUri, reminderValues);
if(r_uri != null)
{
long reminderID = Long.parseLong(r_uri.getLastPathSegment());
return (int) reminderID;
// Toast.makeText(getApplicationContext(), "Event Created Successfully", Toast.LENGTH_LONG).show();
}
else
return 0;
}
else
{
return 0;
}
}
public boolean DeleteReminderOnTask(int eventId, int reminderId) {
// TODO Auto-generated method stub
Uri delete_reminderUri;
if (Build.VERSION.SDK_INT >= 8) {
delete_reminderUri = Uri.parse("content://com.android.calendar/reminders");
} else {
delete_reminderUri = Uri.parse("content://calendar/reminders");
}
delete_reminderUri = ContentUris.withAppendedId(delete_reminderUri, reminderId);
int rows = context.getContentResolver().delete(delete_reminderUri,null , null);
if(rows > 0)
return true;
else
return false;
}
Sau khi thực thi mã này mọi lúc, hàng trả về 0 có nghĩa là không có hàng nào bị thay đổi. Và lời nhắc đến chính xác vào thời điểm thích hợp. Làm cách nào để xóa lời nhắc khỏi lịch mà không xóa sự kiện?
bất kỳ ngoại lệ hoặc lỗi nào trong khi xóa? – Sameer
không. không có lỗi hoặc ngoại lệ. chỉ số lượng hàng đã thay đổi đang đến là 0 – Vansi
Đi qua câu trả lời của tôi .. – Sameer