精华内容
下载资源
问答
  • 安卓日历app

    2018-01-10 10:43:51
    安卓的课程设计,支持上下月滑动切换,农历显示,回到今天。同时加入必应每日一图,界面设计。可运行的app
  • 自己用android stdio 写的日历APP,把源代码上传到这里供大家交流学习!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 跳转安卓日历app

    2019-01-09 20:10:38
    fun gotoCalendarApp(cnt: Context){  try {  if (cnt is AutoRecordActivity) { ... Toast.makeText(cnt, "暂未适配您的机型,如果想要添加日历提醒,请手动添加", Toast.LENGTH_SHORT).show()  }  }

        fun gotoCalendarApp(cnt: Context){
            try {
                if (cnt is AutoRecordActivity) {
                    cnt.closeSmartLifeDialog()
                }
                val intent = Intent(Intent.ACTION_VIEW)
                intent.addCategory(Intent.CATEGORY_DEFAULT)
                intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                intent.setDataAndType(Uri.parse("content://com.android.calendar/"), "time/epoch")
                cnt.startActivity(intent)
                } catch (e: Exception) {
                    e.printStackTrace()
                    Toast.makeText(cnt, "暂未适配您的机型,如果想要添加日历提醒,请手动添加", Toast.LENGTH_SHORT).show()
                }
            }

    展开全文
  • 前言很多时候,我们需要向APP中添加一个事件提醒功能,一般的话都是通过微信公众号或是发送手机短信的方式来实现,但这样如果对于个人开发者的话,想通过这两种方法来实现通知提醒功能就有些限制了。你以为我们就要...

    前言

    很多时候,我们需要向APP中添加一个事件提醒功能,一般的话都是通过微信公众号或是发送手机短信的方式来实现,但这样如果对于个人开发者的话,想通过这两种方法来实现通知提醒功能就有些限制了。你以为我们就要就此止步了?😦别着急,还有办法!幸运的是Android系统为我们提供了CalendarContract这个类,系统有关于日历的操作等等都是通过他实现哒!所以我们可以借助CalendarContract来实现向系统日历中插入事件。而且既然是插入到系统日历中,所以我们当然也就不用担心服务会因为内存不够被系统杀掉而导致提醒不及时的问题!哇!开心辣么大🤗!

    继续前进,这次给大家带来的就是通过Android系统的CalendarContract类来封装实现的一个日历事件工具类,目前实现的功能有向系统日历插入日历账户、查询日历账户、添加、修改、删除日历事件以及事件提醒等功能。废话少说,看效果图:(整个工程的代码还是比较多的,为了节省篇幅,这里只截取一小部分的代码,如果想查看完整代码,结尾有附源码链接)

    效果预览.gif

    怎么样?心不心动?!赶快借此给自己的APP加上一个事件提醒功能吧!

    这是什么?Google代码遵循的见其名知其意相信大家看到这个名字就应该大概猜到了他的作用吧?这张表保存了特定的事件信息。在这个表中每一行都有单一事件的信息,如事件的标题、位置、开始时间、结束时间等。这个事件能够发生一次或重复发生多次。会议、提醒和扩展的属性被保存的独立的表中,它们都有一个EVENT_ID跟Events表中的_ID进行关联。最终事件也就是插入到系统的这张表中,还有一个CalendarContract.Reminders,它主要是用来保存事件的提醒参数的,比如说设置提前15分钟、使用系统通知提醒作为提醒方式,这两个参数的值就是保存在CalendarContract.Reminders中的

    下面来看张日历事件的数据模型图(素材来自网络):

    image

    既然Events这张表对我们实现这次的功能如此重要,那就让我们来看看他都提供了哪些字段:

    字段

    描述

    CALENDAR_ID

    事件所属的日历的_ID

    ORGANIZER

    事件的组织者(所有者)的电子邮件

    TITLE

    事件的标题

    EVENT_LOCATION

    事件发生的地点

    DESCRIPTION

    事件的标题

    DTSTART

    事件的开始时间,使用从纪元开始的UTC毫秒计时

    DTEND

    事件的结束时间,使用从纪元开始的UTC毫秒计时

    EVENT_TIMEZONE

    事件所针对的时区

    EVENT_END_TIMEZONE

    针对事件结束时间的时区

    DURATION

    用RFC5545格式表示的事件持续时间,例如“PT1H”表示事件持续1小时的状态, “P2W”指明2周的持续时间

    ALL_DAY

    1指明这个事件会占用整天时间(由本地时区定义的时间);0指明它是一个普通的事件,可以在一天的任何时间开始和结束

    RRULE

    格式化的事件复发规则(RFC5545)。如“FREQ=WEEKLY;COUNT=10;WKST=SU”

    RDATE

    事件的复发日期。通常RDATE要联合RRULE一起使用来定义一个重复发生的事件的合集。

    AVAILABILITY

    事件的标题

    GUESTS_CAN_MODIFY

    参与者是否能够修改事件

    GUESTS_CAN_INVITE_OTHERS

    参与者是否能够邀请其他参与者

    GUESTS_CAN_SEE_GUESTS

    参与者是否能够看到与会者列表

    Events基本上就是这么多了,我们操作的话只需要根据对应的字段进行数据的组装然后再通过ContentResolver将其插入到系统的表中。

    组装数据:

    /**

    * 组装日历事件

    *

    * @param startTime 开始时间

    * @param endTime 结束时间

    * @param eventTitle 事件标题

    * @param eventDes 事件描述

    * @param eventLocation 事件地点

    * @param event 组装的事件

    */

    private static void setupEvent(long startTime, long endTime, String eventTitle, String eventDes,

    String eventLocation, ContentValues event) {

    // 事件开始时间

    event.put(CalendarContract.Events.DTSTART, startTime);

    // 事件结束时间

    event.put(CalendarContract.Events.DTEND, endTime);

    // 事件标题

    event.put(CalendarContract.Events.TITLE, eventTitle);

    // 事件描述(对应手机系统日历备注栏)

    event.put(CalendarContract.Events.DESCRIPTION, eventDes);

    // 事件地点

    event.put(CalendarContract.Events.EVENT_LOCATION, eventLocation);

    // 事件时区

    event.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());

    // 定义事件的显示,默认即可

    event.put(CalendarContract.Events.ACCESS_LEVEL, CalendarContract.Events.ACCESS_DEFAULT);

    // 事件的状态

    event.put(CalendarContract.Events.STATUS, 0);

    // 设置事件提醒警报可用

    event.put(CalendarContract.Events.HAS_ALARM, 1);

    // 设置事件忙

    event.put(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY);

    // 设置事件重复规则

    // event.put(CalendarContract.Events.RRULE, );

    }

    插入事件:

    Uri eventUri = context.getContentResolver().insert(uri1, event);

    其中第二个参数event就是上面组装出的数据。

    其他的更新和删除操作都类似,就是通过ID在Events表中找到与之对应的事件实体,再调用update方法或delete将其更新或是删除。

    更新事件:

    context.getContentResolver().update(uri, event, selection, selectionArgs);

    删除事件:

    context.getContentResolver().delete(uri1, selection, selectionArgs);

    其中最后两个参数selection和selectionArgs就是数据的匹配条件了,熟悉数据库的同学肯定都很了解,这里我就不再介绍了。😀

    其实最主要的还是了解表的各个字段的含义,了解了这些字段,再将他们都组装起来插入到系统表中就可以了,总体实现起来没有什么难点,相对来说还是比较简单的。😇

    最后,不要忘了在注册清单中加入读写系统日历的权限哦,不然是无法实现功能滴。😊

    总结

    啊啊啊!第一次写技术文章,真的是太太太兴奋啦!!!🤣以此作为自己成长的第一步,加油!!!💪😉

    涉及到的知识点主要有:

    如果你仅仅只是想使用,快速提供这样一个功能的话,直接copy一份源码到自己的项目中即可使用。

    展开全文
  • 安卓日历日程事件获取和监听汇总

    千次阅读 2017-02-17 15:52:16
    在我们的APP开发过程中,很多时候我们需要获取用户的日历日程事件,便于我们APP更好的了解用户,同时给予用户提醒。 要想获得日历日程的相关内容,首先我们需要拥有日历日程的读写权限。主要包括下面两个权限 ...

    在我们的APP开发过程中,很多时候我们需要获取用户的日历日程事件,便于我们APP更好的了解用户,同时给予用户提醒。

    要想获得日历日程的相关内容,首先我们需要拥有日历日程的读写权限。主要包括下面两个权限

    获得对安卓系统日历事件操作的权限,也就是在AndroidManifest.xml文件中加入如下两行

    ·  <uses-permission Android:name="android.permission.READ_CALENDAR"/>   

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

    字面意思很明确就是分别的读写权限,类同于对短信的权限获取

    安卓中日历用到三个URL,分别是日历用户的URL,事件的URL,以及事件提醒的URL,三个URL在安卓版本2.2前后分别是:

     if(Integer.parseInt(Build.VERSION.SDK)>=8){

          uri = "content://com.android.calendar/calendars";

         eventUri = "content://com.android.calendar/events";

          reminderUri = "content://com.android.calendar/reminders";

    }

    else{   //在安卓2.2版本以后的地址

      calanderURL"content://calendar/calendars";

      calanderEventURL"content://calendar/events"

      reminderUri = "content://calendar/reminders";

    }

    之后我们通过内容解析者分别对这三个url内容进行查询

    1. Cursor userCursor = getContentResolver().query(Uri.parse(calanderURL), null,   
    2.                     nullnullnull);  
    3.             if(userCursor.getCount() > 0){  
    4.                 userCursor.moveToFirst();    // 将游标移动到首位
    5.                 String userName = userCursor.getString(userCursor.getColumnIndex("name")); //拿到当前日历用户
    6.              
    7.             }   
    8.             Cursor eventCursor = getContentResolver().query(Uri.parse(calanderEventURL), null,  
    9.                     nullnullnull);  
    10.             if(eventCursor.getCount() > 0){  
    11.                 eventCursor.moveToLast();              
    12.                 String eventTitle = eventCursor.getString(eventCursor.getColumnIndex("title"));  
    13.             }  
    14.             //获取要出入的gmail账户的id  
    15.             String calId = "";  
    16.             Cursor userCursor = getContentResolver().query(Uri.parse(calanderURL), null,   
    17.                     nullnullnull);  
    18.             if(userCursor.getCount() > 0){  
    19.                 userCursor.moveToFirst();  
    20.                 calId = userCursor.getString(userCursor.getColumnIndex("_id"));  
    21.                   
    22.             }  
    23.             ContentValues event = new ContentValues();        // 新建日历事件
    24.             event.put("title""明天上午八点考试");  
    25.             event.put("description""明天上午在第二教学楼有英语专业的考试");  
    26.             //插入插入用户
    27.             event.put("calendar_id",calId);  
    28.               
    29.             Calendar mCalendar = Calendar.getInstance();  
    30.             mCalendar.set(Calendar.HOUR_OF_DAY,10);  
    31.             long start = mCalendar.getTime().getTime();  
    32.             mCalendar.set(Calendar.HOUR_OF_DAY,11);  
    33.             long end = mCalendar.getTime().getTime();  
    34.              // 分别设置开始时间和结束时间
    35.             event.put("dtstart", start);  
    36.             event.put("dtend", end);  
    37.             event.put("hasAlarm",1);  
    38.               
                        //将事件插入到日历中
    1.             Uri newEvent = getContentResolver().insert(Uri.parse(calanderEventURL), event);  
    2.             long id = Long.parseLong( newEvent.getLastPathSegment() );  
    3.             ContentValues values = new ContentValues();  
    4.             values.put( "event_id", id );  
    5.             //提前10分钟有提醒  
    6.             values.put( "minutes"10 );  
    7.             getContentResolver().insert(Uri.parse(calanderRemiderURL), values);  
    8.             
    9.         }  
    10.     }  
    public class CalendarObserver extends ContentObserver {

            private Context context;
            private Handler handler;
            
            public CalendarObserver(Context context,Handler handler) {
                    super(handler);
                    // TODO Auto-generated constructor stub
                    this.context=context;
                    this.handler=handler;
            }

            @Override
            public void onChange(boolean selfChange) {
                    // TODO Auto-generated method stub
                    super.onChange(selfChange);
                    handler.obtainMessage(3,"events have chage").sendToTarget();
            }
    在主类中,实例化并实施监听
                    calObserver=new CalendarObserver(this,new Handler(){

                    @Override
                    public void handleMessage(Message msg) {
                            /**当监听到改变时,做业务操作*/
                            Log.i("tag", "now ");
                            String msgStr=(String)msg.obj;
                                    System.out.println(msgStr+"----------------日程日程");
                                    Toast.makeText(CalendarActivity.this, "日程事件修改被触发", Toast.LENGTH_SHORT).show();
                    }        
            };
                    //注册日程事件监听
                    getContentResolver().registerContentObserver(Events.CONTENT_URI, true, calObserver);

    }

    以下是日历事件的增删该差的具体demo

    http://blog.csdn.net/justforhappness/article/details/40432663



    展开全文
  • 但是,不知道用哪款提醒便签App软件好。有一款便签App软件可以设置每年循环提醒,不仅可以按年还可以按月、按周、按季、按月来设置。如果想设置国庆节的提醒,按年设置就行,只需要设置一次以后每年都会循环重复提醒...

    每年的节日有好多,像劳动节、国庆节、元旦、春节、元宵佳节等节日,想用手机便签设置一个节日然后每年都会自动提醒,比如每年的国庆节提醒。但是,不知道用哪款提醒便签App软件好。

    有一款便签App软件可以设置每年循环提醒,不仅可以按年还可以按月、按周、按季、按月来设置。如果想设置国庆节的提醒,按年设置就行,只需要设置一次以后每年都会循环重复提醒。这就是带重复提醒功能的敬业签呀!那具体怎么设置每年的国庆节提醒呢?下面就用手机版敬业签,教你如何设置。

    打开敬业签,在内容界面上点击“+”输入便签内容,然后点击左下角闹铃提醒图标,点开时间提醒设置窗口,可选择首次提醒时间,当月1。重复提醒选择按年提醒,每1年的10月提醒,点击完成按钮保存提醒时间,再保存便签内容,内容界面将会出现每110月1日提醒的国庆节 

    b7ef5d731a3a1c5e0165141ac4a083f5.png

    敬业签不仅有重复提醒的功能,还有单次定时提醒、公历农历提醒重要事项间隔提醒以及到期延时提醒的功能,同时也可以开启微信提醒、钉钉提醒、短信提醒、日历(安卓端)提醒以及语音电话提醒等功能。

    536671839f5c32a95efdd9e34916d277.png 

    敬业签便签记录的内容和设置的提醒有多端云同步的功能,在安卓和苹果手机端、Windows电脑端、web网页端、iPad端和Mac电脑桌面端等都可以及时接收提醒通知,不用担心会错过重要的提醒通知。

    展开全文
  • 日历天气这款app日历和天气融合在一起,给你轻松寻找必须的信息内容。手机软件中有很多的新鲜作用能够应用,你可以使用这个软件提前知道15天以内的天气或者是最近的日历情况。有需要的朋友们赶紧来下载安装手机...
  • 各种安卓app安卓UI特效 非常炫的界面特效合集,你会谢我的.zip 放置菜单 过滤菜单 秒表 日历 水波涟漪效果 侧滑 壁画墙 吹泡泡 ...
  • 安卓、苹果日历同步

    千次阅读 2015-11-16 13:17:50
    现在一个人有两部手机非常常见,手机日历已经...上次介绍了采用安卓端SOL这个app来同步安卓和苹果的日历。使用下来后发现一个问题,每次关机再开机后,打开日历总是提示没有设置同步的日历,输入icloud账号后又可以同步
  • 木瓜日历app来帮你记录重要日程!专业的日历软件,不用担心错过重要事项,让你的生活更加条理化,添加闹钟提醒,不再忘记!软件功能一款简单,有用,还能提升你社交逼格的日历一目了然,日历她就应该这么简单微信...
  • 多次登录认证失败,app锁定,直到一定时间之后才能够允许用户重新认证登录.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 生日提醒APP,使用Android studio做的一款APP,连接Android的轻量级数据库,能够实现生日数据与数据库连接,并有提醒功能.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 安卓和苹果手机每逢农历阴历每月初一十五提醒APP日历软件 在中国佛家节日每逢农历阴历每月初一十五上香贡品吃素等等但是因工作生活方便的事情太多及日常使用的日历是公历日期经常容易忘记错过农历每月的初一十五于是...
  • 源码以及文档下载 ...  计算机学院2014级学年论文 LZL 于 2017 年 8 月 29 日  完 美 天 气 A P P 内容摘要 在智能手机中,Android平台约占75%市场份额。安卓系统的广泛应用,使得Android手...
  • OneCalendarView CalendarView Personalizado para ...Live Demo app usted puede ver una aplicacion demo en el siguiente enlace https://appetize.io/app/cymqjzvzaybypepxhnmn4hewx0 Instalación en su a
  • 推荐一款Android安卓app开发框架_有超多的控件特效.zip list分页,grid分页,下拉刷新,进度框,图片轮播,表格,多线程下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器 网络下载,多线程与线程池的...
  • 我是在官网安装的安卓版 v1.3.9, 在更新到 7.1 日时,继续下拉出现了更新提示, 但点击链接后跳转到 ios-update.html 页(http://zhangwenli.com/2019-typography-calendar/update-ios.html?ref=inapp-home-...
  • daysmatter是一款多功能日历软件,可以帮助用户添加每个重要的日期,支持公历、农历的倒数日期计算提醒功能,还能详细的显示并距离天,并能及时作出提醒。daysmatter安卓版功能丰富,使用简单便捷,具有多种工具栏...
  • 软件介绍日历天气预报是一款多功能天气预报服务软件,在日历天气预报软件这里汇集了多种气象服务功能,支持全国多地区城市天气了解,日历天气预报app支持用户定位查看天气,也可以随时手动添加不同的城市进行天气...
  • 安卓/system/app目录的apk说明

    千次阅读 2016-07-30 15:23:51
    AlarmClock.apk 闹钟  Browser.apk 浏览器  Bugreport.apk Bug报告 ...system/app/Calendar.apk 日历  system/app/CalendarProvider.apk 日历提供  Camera.apk 照相机  Contacts.apk 联系人  Downloa
  • 联想日历软件由联想公司进行开发,作为一款日历app,它有着非常全面的功能,支持日常生日,重要节日的提醒,还要相关的节日贺卡,界面非常简洁,还有天气预报的功能,感兴趣的话可以下载体验。联想日历安卓版功能1....
  • 删除日历的问题 日历被某账户写入了账号和事件.如何删除. 这里给出了安卓手机的通用解法. 感谢dada英语的帮助. 解决了它写入的日历无法删除的问题
  • 有没有一款功能强大的带有日历提醒的手机便签备忘录软件?1、下载个手机版敬业签APP,你可以从手机应用市场搜索“敬业签”手机版下载;下载完打开注册登录账号,点击底部“+”符号;2、输入斋日提醒便签内容,点击...
  • 说说日历-能听懂你说话的日历! 史上最简的日历iOS应用...现在迫切需要一批内测用户,试试看此app功能。希望各位: 1)需是iPhone用户(目前只有iPhone版,安卓很快有); 2)用或者需要日历提醒功能; 3)尝鲜,并愿
  • 今天小趣同学给大家推荐3款非常精美实用的安卓APP,都是小编精心挑选出来的应用,喜欢的同学可以试试;Sectograph-假日里的时间规划师Sectograph 是一款非常精美实用的时间规划应用,你可以添加日常生活提醒与安排,...
  • android+app测试基础4+简单的安卓项目

    千次阅读 2018-01-23 19:24:53
    测试一款安卓app,茄子医生 主要测试了四个模块 第一个模块:四个引导页,我们测试是否可以点击跳过,点击跳过后是否能够找到体验按钮 第二个模块:就是登陆模块,简单的测试一下 第三模块:就是日历模块,日历...
  • Tags: 生活助手倒数日days软件是一款多功能日历,它可以记下家人朋友的生日、结婚纪恋日等一系列重要的日子,打开app就能看到这些日子还剩多少天,让你不会错过每一个重要的日子,更好的管理自己的行程。...
  • andriod 打造炫酷的电影票在线选座控件 Android组件化小项目 android类似QQ空间,微信朋友圈,微博主页源码 对RecyclerView Item做动画 源码 ...让你的app高大上,自定义对话框实现安卓原生指...
  • 目录GridViewcalendarViewDatePicker ...import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

安卓日历app