【Android】EventReminder使用教程(日历事件导出封装库)

简介:

【Android】EventReminder使用教程(日历事件导出封装库)

为啥要写这个库呢?

尝试自己写一个库调用,学习一下这个流程,为以后做准备
日历库在网上的资料太少了,而这个功能却又很实用
自己做的项目都会涉及到事件导出功能,不想重复写代码
这个库目前可以支持日历事件的直接导出、删除,ics文件的生成

ics生成文件中支持重复规则

目前该库还在完善中🔨

欢迎提供建议❤

2|0使用方法

2|1引入

在项目中引用即可

implementation 'com.paul.eventreminder:eventreminder:0.0.3'
2|2使用教程

CalendarManager
不是特别方便的初始化方法:

你需要提供Activity(用来获取权限)以及日历账户配置名称

首先声明一个Manager:

CalendarManager calendarManager=new CalendarManager(this,"测试");
会自动请求日历写入权限,如果拒绝这一块逻辑我没有处理,你可以在自己的代码中去实现该逻辑。

添加一个事件的时候你需要创建一个CalendarEvent 对象,或者您也可以选择继承自这个类

属性如下:

//总结 String summary; //内容 String content; //地点 String loc; //周次 List weekList; //周几 int dayOfWeek; //开始时间 String startTime; //结束时间 String endTime;
这里的weeklist至关重要,因为通过该集合来控制事件的重复

考虑到部分存在[1,2,3,4,8,10]这种不规则的形式,因此采用逐一导入的方法。

开始时间和结束时间的格式为 :“8:00”

创建好你的事件后调用addCalendarEvent方法即可,这里需要传入一个当前周次来告诉我当前所处时间位置。这个周次一定是在你提供的weekList中的。

public void addCalendarEvent(CalendarEvent mySubject, int curWeek,OnExportProgressListener listener)
当然你也可以选择不传curWeek这个参数,会自动默认添加从1月1号到当前时间过了几周

在添加事件事前,你也可以为其设置提醒

calendarManager.setAlarm(true);//开启提醒 calendarManager.setAlarmTime(15);//15分钟
删除事件也很简单,直接调用delete方法即可。

public void deleteCalendarEvent(Context context,OnExportProgressListener listener)
值得一提的是,删除判断的是事件内容末尾的@+ACCOUNT_NAME,所以请保持该名称在创建和删除时候要相同。

ICSManager
初始化:

ICSManager icsManager=new ICSManager(Context context,String userName);
同Calendar一样,你需要创建对应的CalendarEvent并传入

icsManager.OutPutIcsFile(String filename,boolean useRule,List calendarEvents,int curWeek,OutPutListener listener)

这里有一个参数为useRule,为bool类型

true代表开启重复规则,false代表关闭

开启重复规则后,根据你提供的weeklist来进行判断

形如 [1,2,3,4,5,6]或者[2,4,6,8,10]或者[1,3,5,7,9]都可以支持规则导出 但如果是这种[1,2,3,4,6,8]不规则的,会自动按照重复逐一导出
开启提醒的方式:

icsManager.setAlarm_seconds(15); icsManager.setFalg_alarm(true);
在回调函数中,onSuccess方法会传回来一个生成文件路径,由于该文件是保存在包名下的私有目录,因此不需要任何读写权限。

你也可以直接调用File来处理他。

项目github地址:https://github.com/paul623/EventReminder

具体实例请看项目内的代码。

EOF

本文作者:巴塞罗那的余晖
本文链接:https://www.cnblogs.com/robotpaul/p/12726609.html

相关文章
|
前端开发 数据可视化 Java
Android用Canvas画一个折线图,并加以简单封装
本文介绍了如何用Java绘制动态折线图,从固定折线图的实现到封装成可复用的组件。首先通过绘制XY坐标轴、添加坐标标签和绘制折线及数据点完成基础折线图。接着,将静态数据替换为动态输入,支持自定义X轴、Y轴和折线数据。代码中包含关键方法如`drawDaxes`(绘制坐标轴)、`drawAxispoint`(绘制坐标点)和`drawbrokenLine`(绘制折线)。最终实现可根据传入数据动态生成折线图,适用于Android开发中的数据可视化场景。
449 0
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
720 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
4011 5
|
Android开发
布谷语音软件开发:android端语音软件搭建开发教程
语音软件搭建android端语音软件开发教程!
|
Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
517 1
|
Android开发
Android面试高频知识点(1) 图解 Android 事件分发机制
Android面试高频知识点(1) 图解 Android 事件分发机制
272 1
|
Android开发
Android 事件分发机制详细解读
Android 事件分发机制详细解读
344 5
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
976 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
XML 前端开发 Android开发
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制
Android面试高频知识点(1) 图解Android事件分发机制

热门文章

最新文章