Android 设置系统闹钟,日历写入。实现demo

实现方法1——代码闹钟 

可变时间格式:"yyyy-MM-dd HH:mm:ss"

保存闹钟时间:

  • SimpleDateFormat df = new SimpleDateFormat("HH:mm");//设置日期格式

  • String thistime = df.format(new Date());

  • SharedPreferences sharedPreferences = getSharedPreferences("industryInfo", Context.MODE_PRIVATE); //私有数据

  • SharedPreferences.Editor editor = sharedPreferences.edit();//获取编辑器

  • editor.putString(“retime”, thistime);//名称 id

  • editor.commit();//提交

监听时间变化:

监听service

/*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/27 09*/
public class Serview extends Service {/*** 广播接受者*/private BroadcastReceiver mBatInfoReceiver;private String TAG = "lgq--------------------";@Overridepublic void onCreate() {super.onCreate();initBroadcastReceiver();}/*** 注册广播*/private void initBroadcastReceiver() {final IntentFilter filter = new IntentFilter();// 屏幕灭屏广播filter.addAction(Intent.ACTION_SCREEN_OFF);//关机广播filter.addAction(Intent.ACTION_SHUTDOWN);// 屏幕亮屏广播filter.addAction(Intent.ACTION_SCREEN_ON);// 屏幕解锁广播
//        filter.addAction(Intent.ACTION_USER_PRESENT);// 当长按电源键弹出“关机”对话或者锁屏时系统会发出这个广播// example:有时候会用到系统对话框,权限可能很高,会覆盖在锁屏界面或者“关机”对话框之上,// 所以监听这个广播,当收到时就隐藏自己的对话,如点击pad右下角部分弹出的对话框filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);//监听日期变化filter.addAction(Intent.ACTION_DATE_CHANGED);filter.addAction(Intent.ACTION_TIME_CHANGED);filter.addAction(Intent.ACTION_TIME_TICK);mBatInfoReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(final Context context, final Intent intent) {String action = intent.getAction();if (Intent.ACTION_SCREEN_ON.equals(action)) {Log.i(TAG, "screen on");} else if (Intent.ACTION_TIME_TICK.equals(action)) {//日期变化步数重置为0Log.i("lgq0000000000000000","日期变化步数重置为0===="+action);SharedPreferences share = getSharedPreferences("industryInfo", Activity.MODE_PRIVATE);String industryOne = share.getString("retime", "");//名称 获取idif (industryOne.equals(new SimpleDateFormat("HH:mm").format(new Date()))){//todo   闹钟到了}}}};registerReceiver(mBatInfoReceiver, filter);}@Nullable@Overridepublic IBinder onBind(Intent intent) {return null;}
}
<service android:name=".testt.Serview"><intent-filter><!-- 系统启动完成后会调用--><action android:name="android.intent.action.BOOT_COMPLETED" /><action android:name="android.intent.action.DATE_CHANGED" /><action android:name="android.intent.action.MEDIA_MOUNTED" /><action android:name="android.intent.action.USER_PRESENT" /><action android:name="android.intent.action.ACTION_TIME_TICK" /><action android:name="android.intent.action.ACTION_POWER_CONNECTED" /><action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /></intent-filter>
</service>

    /*** 开启计步服务*/private void setupService() {Intent intent = new Intent(this, Serview.class);
//        isBind = bindService(intent, conn, Context.BIND_AUTO_CREATE);startService(intent);}

实现方法2——设置系统闹钟 、写入日历

闹钟

Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)//闹钟的小时.putExtra(AlarmClock.EXTRA_HOUR, hour)//闹钟的分钟.putExtra(AlarmClock.EXTRA_MINUTES, minutes)//响铃时提示的信息.putExtra(AlarmClock.EXTRA_MESSAGE, message)//用于指定该闹铃触发时是否振动.putExtra(AlarmClock.EXTRA_VIBRATE, true)//一个 content: URI,用于指定闹铃使用的铃声,也可指定 VALUE_RINGTONE_SILENT 以不使用铃声。//如需使用默认铃声,则无需指定此 extra。.putExtra(AlarmClock.EXTRA_RINGTONE, ringtoneUri)//一个 ArrayList,其中包括应重复触发该闹铃的每个周日。// 每一天都必须使用 Calendar 类中的某个整型值(如 MONDAY)进行声明。//对于一次性闹铃,无需指定此 extra.putExtra(AlarmClock.EXTRA_DAYS, testDays)//如果为true,则调用startActivity()不会进入手机的闹钟设置界面.putExtra(AlarmClock.EXTRA_SKIP_UI, true);

 日历

      //添加日历事件Calendar mCalendar = Calendar.getInstance();mCalendar.setTimeInMillis(reminderTime);//设置开始时间long start = mCalendar.getTime().getTime();mCalendar.setTimeInMillis(start + 10 * 60 * 1000);//设置终止时间,开始时间加10分钟long end = mCalendar.getTime().getTime();ContentValues event = new ContentValues();event.put("title", title);event.put("description", description);event.put("calendar_id", calId); //插入账户的idevent.put(CalendarContract.Events.DTSTART, start);event.put(CalendarContract.Events.DTEND, end);event.put(CalendarContract.Events.HAS_ALARM, 1);//设置有闹钟提醒event.put(CalendarContract.Events.EVENT_TIMEZONE,timeZoneId);//这个是时区,必须有
//        event.put(CalendarContract.Events.EVENT_LOCATION,location);//写入日历地点// 定义事件的显示,默认即可event.put(CalendarContract.Events.ACCESS_LEVEL, CalendarContract.Events.ACCESS_DEFAULT);// 事件的状态event.put(CalendarContract.Events.STATUS, 0);// 设置事件忙event.put(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY);

在线bug交流:QQ 1085220040 

demo 连接:https://download.csdn.net/download/meixi_android/87163876 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 安装 fortran

1、 yum install gcc-c2、 yum install gcc-gfortran

前端学习(2677):懂代码之表格BaseTable删除操作

1第一步 <el-table-column label"操作" width"180" align"center"><template slot-scope"scope"><el-buttontype"text"icon"el-icon-edit"click"handleEdit(scope.$index, scope.row)"&…

Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】

本博文全文属于摘抄自&#xff1a; (见文末处参考文献)(由于担心原博文丢失&#xff0c;以后查找不到&#xff0c;故此原文摘抄&#xff0c;以备日后多次查阅) 在日常工作中&#xff0c;有时需要对屏幕进行录像&#xff0c;以制作讲解文档等。下面介绍在Linux上安装屏幕录像软件…

Android精准计步器

demo链接&#xff1a;https://download.csdn.net/download/meixi_android/10690974 工具类&#xff1a; public class StepDetector implements SensorEventListener {//存放三轴数据float[] oriValues new float[3];final int ValueNum 4;//用于存放计算阈值的波峰波谷差值…

docker 目录 挂载

docker容器启动的时候&#xff0c;如果要挂载宿主机的一个目录&#xff0c;可以用-v参数指定。 譬如我要启动一个centos容器&#xff0c;宿主机的/share目录挂载到容器的/share目录&#xff0c;可通过以下方式指定&#xff1a; docker run -it -v /share:/share centos /bin/…

工作177:表单重置项目处理

<template><!--新建账号对话框--><el-dialog title"新建账号" :visible.sync"dialogFormVisible" close"close"><el-form ref"form" :model"form" size"medium" :label-width"formLabe…

docker删除所有镜像和容器

需求&#xff1a;重新进行开发&#xff0c;需要清空目前的镜像和容器。 1、删除容器 1&#xff09;首先需要停止所有的容器 docker stop $(docker ps -a -q) 2&#xff09;删除所有的容器&#xff08;只删除单个时把后面的变量改为image id即可&#xff09; docker rm $(d…

Ubuntu配置完全教程

前言 最近将旧电脑换成了Ubuntu系统&#xff0c;在网上找了许多优化和配置教程&#xff0c;今天整理一份完整的教程给大家分享 系统清理 卸载LibreOffice libreoffice事ubuntu自带的开源office软件&#xff0c;体验效果不如windows上的office&#xff0c;于是选择用WPS来替代&a…

Android assets文件使用

1、在main文件夹下创建assets文件夹 2、assets文件夹下可创建image文件夹&#xff0c;text文件夹&#xff0c;image文件夹下存放jpg或png图片。text文件夹下存放.txt文本 3、读取assets文件内容&#xff1a; entity类&#xff1a; public class Book {private static final…

工作176:表单重置

复制代码 <el-form :model"loginForm" ref"loginFormRef"> // 1. 需要给表单指定 ref 属性 , 可以理解为表单的 名字<!-- 用户名 --><el-form-item prop"username"> // 2. 需要给 需要重置 的表单项指定 prop 属性, 值…

《掌握需求过程》阅读笔记05

需求策略需要平衡需求知识、活动和人。沟通需求知识的一致的语言&#xff0c;发现和传播知识的活动&#xff0c;参与的人&#xff0c;这些是影响需求策略的所有变量。 需求策略是一个活动的框架&#xff0c;需要根据给定的项目轮廓&#xff0c;执行这些活动。在工作中常遇到的轮…

Android 自定义字体,设置字体

效果图 实现代码&#xff1a; 1、先下载字体文件.ttf 下载链接&#xff1a;http://font.chinaz.com/maobiziti.html 2、main文件夹下创建fonts文件夹&#xff0c;.ttf文件复制到fonts文件夹下 3、读取ttf文件 List<Typeface> mTypefaceList new ArrayList(); priva…

docker 安装 centos

1、设置docker 镜像加速 三个源 名称路径网易https://hub-mirror.c.163.com/阿里云https://<你的ID>.mirror.aliyuncs.com七牛云加速器https://reg-mirror.qiniu.com "registry-mirrors":["https://hub-mirror.c.163.com/","https://reg-mirr…

工作177:时间戳转换

main.js // 将时间戳转日期格式的过滤器 Vue.filter(dateFormat, (dataStr) > {var time new Date(dataStr);function timeAdd0(str) {if (str < 10) {str 0 str;}return str}var y time.getFullYear();var m time.getMonth() 1;var d time.getDate();var h time…

管理点收集

1.建立一个“建议组” 来允许员工说出对工作过程中的不合理的地方的建议&#xff0c;不断收集建议 定期整改2.站立会议的按时举行3.文档管理制定负责人4.代码管理 版本定期发布5.尽可能的让员工之间的工作减少相互依赖&#xff08;减少相互之间的等待&#xff09;6.“所有人应该…

Android 简单几行代码实现摇一摇功能

1、activity 实现加速度监听类 。。。。implements SensorEventListener public class MainActivity extends AppCompatActivity implements SensorEventListener { 2、activity实现两个方法&#xff1a; Overridepublic void onSensorChanged(SensorEvent sensorEvent) {Se…

docker centos 环境 安装 python

1、下载安装python编译环境依赖 yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel #安装make编译所需的gcc,g编译器 yum -y install gcc automake autoconf libtool make wget 2、移除centos中自带的python2.7的环境变量 cd /…

Linux下Shell文件内容替换(sed)(转)

sed -i s/被替换的内容/要替换成的内容/g file #-i为直接修改并保存 参考&#xff1a; http://blog.sina.com.cn/s/blog_7211cb9201019hgd.html http://wangchujiang.com/linux-command/c/sed.html转载于:https://www.cnblogs.com/EasonJim/p/8018381.html

docker查看容器ip地址

docker inspect <containerid> 比如 docker inspect dcd61b573df1 里面包含"Gateway": "172.17.0.1" 可以读出ip