0
  • 最佳答案
    public  void  addAlertEvent(View view){
        //设置日历的id
    
        long calID = 1;
        //设置开始时间
        Calendar begintime = Calendar.getInstance();
        //月份是加一的操作,设置对应的月份必须-1.
        begintime.set(2021,11,8,0,0,0);
        long beginTimeInMillis  = begintime.getTimeInMillis();
        //设置结束时间
        Calendar endtime = Calendar.getInstance();
        endtime.set(2021,11,9,0,0);
        long endTimeInMillis = endtime.getTimeInMillis();
        //获取时区
        String Timezone = TimeZone.getDefault().getID();
        Log.d(TAG,"timezone-----"+Timezone);
        //插入一个提醒事件
        ContentValues eventvalues = new ContentValues();
        ContentResolver resolver = getContentResolver();
        eventvalues.put(CalendarContract.Events.CALENDAR_ID,calID);
        eventvalues.put(CalendarContract.Events.DTSTART,beginTimeInMillis);
        eventvalues.put(CalendarContract.Events.DTEND,endTimeInMillis);
        eventvalues.put(CalendarContract.Events.TITLE,"插入事件测试提醒");
        eventvalues.put(CalendarContract.Events.DESCRIPTION,"算法题安卓题");
        eventvalues.put(CalendarContract.Events.EVENT_TIMEZONE,Timezone);
        eventvalues.put(CalendarContract.Events.EVENT_LOCATION,"湛江");
        Uri eventuri = CalendarContract.Events.CONTENT_URI;
        Uri resultUri = resolver.insert(eventuri, eventvalues);
        Log.d(TAG,"resulturi-----"+resultUri);
             //给插入的事件设置一个闹钟提醒
        ContentResolver contentResolver = getContentResolver();
         Uri reminderuri = CalendarContract.Reminders.CONTENT_URI;
        ContentValues remindervaluse = new ContentValues();
        Uri resulturi = contentResolver.insert(reminderuri, remindervaluse);
        String eventid = resulturi.getLastPathSegment();
       // long eventid = 18;
        Log.d(TAG,"id----"+eventid);
         remindervaluse.put(CalendarContract.Reminders.EVENT_ID,eventid);
         remindervaluse.put(CalendarContract.Reminders.MINUTES,15);
         remindervaluse.put(CalendarContract.Reminders.METHOD,CalendarContract.Reminders.METHOD_ALERT);
    }
    


    1459787886420312066  评论     打赏       GE
    • 1459787886420312066  评论     打赏       GE
      • Unknown URL content://com.android.calendar,你最好看一下源码,是否可以匹配上。

        1153952789488054272  评论     打赏       拉大锯
        • GE  回复 @拉大锯
          是一致的.
          GE 2021-12-06 17:28   回复 1459787886420312066
        • GE  回复 @拉大锯
          还有一个问题是querycalendar那个方法没有把表的信息打印到logcat上面,但是我在方法里面打了一个log发现是走到了这个方法里面的
          GE 2021-12-06 17:30   回复 1459787886420312066
        • 拉大锯  回复 @GE
          那得看有没有,可以把数据库拖出来看看即可。另外query 记得close
          拉大锯 2021-12-06 17:43   回复 1153952789488054272
        • GE  回复 @拉大锯
          嗷我知道问题了,老师您的教程里面是用真机模拟,所以日历表是有数据的,我是用模拟器,还没存入数据,刚刚看了一下数据库是空的哈哈.那么我是否要存入数据才能进行.现在剩下uri的问题了,点进去源码看了发现是一样的,但是报了unknown
          GE 2021-12-06 18:17   回复 1459787886420312066
        • GE  回复 @拉大锯
          刚刚用了真机调试,还是无法解决unkonwn uri的问题
          GE 2021-12-06 20:13   回复 1459787886420312066
        • 拉大锯  回复 @GE
          权限你加了吗?
          拉大锯 2021-12-06 20:21   回复 1153952789488054272
        • 拉大锯  回复 @GE
          读写日历的权限
          拉大锯 2021-12-06 20:22   回复 1153952789488054272
        • GE  回复 @拉大锯
          已经加了,还是不行,就很奇怪.....
          GE 2021-12-06 20:58   回复 1459787886420312066
        • GE  回复 @拉大锯
          重写项目,换系统版本等方法也试过了,也不行
          GE 2021-12-06 20:59   回复 1459787886420312066
        • GE  回复 @拉大锯
          会不会日历本身的问题?我手动打开日历,它一直停留在checking info的界面,然后过一会说无法连接谷歌服务
          GE 2021-12-06 21:11   回复 1459787886420312066
        • 拉大锯  回复 @GE
          你不是有真机吗?你用真机,看看权限是否需要动态申请。
          拉大锯 2021-12-06 21:16   回复 1153952789488054272
        • GE  回复 @拉大锯
          有的,运行后显示要授权,点击授权后就进入到了那个插入提醒事件的布局,然后一点击按钮就崩了,回去logcat看原因就是unknown uri
          GE 2021-12-06 21:57   回复 1459787886420312066
        • GE  回复 @拉大锯
          老师早上好,昨天的bug已经解决了,今天插入闹钟提醒又报了一个Reminders values must contain a numeric event_id的错误....代码在上面
          GE 2021-12-07 09:47   回复 1459787886420312066
        • 拉大锯  回复 @GE
          这句话意思你能看懂吗?它已经告诉你了,你的提示值必须包含event_id,类型是数字类型。
          拉大锯 2021-12-07 10:02   回复 1153952789488054272
        • GE  回复 @拉大锯
          我知道,就是已经是填了数字类型,它还是报了这个错误
          GE 2021-12-07 10:04   回复 1459787886420312066
        • 拉大锯  回复 @GE
          你是在插入数据之后才设置的,不是应该在插入数据前给值 吗?
          拉大锯 2021-12-07 10:12   回复 1153952789488054272
        • GE  回复 @拉大锯
          原来是顺序的问题,解决了,太粗心了...
          GE 2021-12-07 10:18   回复 1459787886420312066
      相关问题
      _empty · Android
      2019-10-20 23:51 628 2
      application · Android
      2019-11-05 00:26 778 2
      三流废物 · android / 小白
      2019-11-22 00:35 1067 5
      豪豪好嘛 · Android / GPS
      2019-11-26 20:15 882 5
      Jian · android
      2019-11-28 01:51 615 2
      2019-12-01 01:01 704 2
      小陈学编程 · Android
      2019-12-01 19:08 633 2
      fkinggod · Android
      2019-12-08 09:19 660 5
      fkinggod · Android
      2019-12-08 20:47 609 2
      kissmyass · Android
      2019-12-09 07:08 537 2
      独一无二的名zi · Android
      2019-12-30 06:48 415 2