android 开源闹钟,Android闹钟 - huiyun-yoyo的个人页面 - OSCHINA - 中文开源技术交流社区...
设置闹钟
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
SPUtil.setNotificationTime(Tools.getNotificationTime(hourOfDay, minute));
Calendar calendar1 = Calendar.getInstance();
calendar1.setTimeInMillis(System.currentTimeMillis());
calendar1.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar1.set(Calendar.MINUTE, minute);
calendar1.set(Calendar.SECOND, 0);
calendar1.set(Calendar.MILLISECOND, 0);
am = (AlarmManager) getSystemService(ALARM_SERVICE);
start_alarm = new Intent(MessageActivity.this, ToastActivity.class);
sender = PendingIntent.getActivity(MessageActivity.this, 1, start_alarm, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), repeat_time, sender);
String s =Tools.changeTimeStyle(calendar1.get(Calendar.HOUR_OF_DAY),calendar1.get(Calendar.MINUTE));
showTimeTxt.setText(s);
SPUtil.setNotificationTime(s);
can_cancle = true;
}
},
calendar.get(Calendar.HOUR_OF_DAY),
calendar.get(Calendar.MINUTE), true).show();
ToastActivity
public class ToastActivity extends AppCompatActivity {
private Uri ringUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
private final MediaPlayer mp = new MediaPlayer();
private Vibrator vibrator;
private PowerManager.WakeLock mWakelock;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//hide title
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags |= (WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
startMedia();//播放音乐
startVibrator();//震动
showAlarmDialog();
}
@Override
protected void onResume() {
super.onResume();
if (mWakelock == null) {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.SCREEN_DIM_WAKE_LOCK, this.getClass()
.getCanonicalName());
mWakelock.acquire();
}
}
@Override
protected void onPause() {
super.onPause();
if (mWakelock != null && mWakelock.isHeld()) {
mWakelock.release();
mWakelock = null;
}
}
private void showAlarmDialog() {
new AlertDialog.Builder(this).setTitle("闹钟响了")
.setMessage(Tools.getSharedWeather(MyApplication.getCityData(SPUtil.getGPSCity())))
.setPositiveButton("关闭闹钟", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mp.stop();
vibrator.cancel();
ToastActivity.this.finish();
}
}).show();
}
private void startVibrator() {
long[] pattern = {500, 1000, 500, 1000};//停止 开始 停止 开始
vibrator.vibrate(pattern, 0);
}
private void startMedia() {
try {
mp.setDataSource(this, ringUri);
mp.prepare();
mp.start();
} catch (IOException e) {
e.printStackTrace();
}
}
添加唤醒锁屏权限:
android 开源闹钟,Android闹钟 - huiyun-yoyo的个人页面 - OSCHINA - 中文开源技术交流社区...相关推荐
- android注销广播接收器,使用广播接收器 - chuiyuan的个人页面 - OSCHINA - 中文开源技术交流社区...
之前 的用Intent 在不同的Activity之间跳转,可以说是直接 Intent,因为指定 了明确 的目标. 广播则是相当于间接Intent. 间接intent就是没有指定具体目标的Intent, ...
- ireader android 源码,仿ireader书架 - androidCode的个人空间 - OSCHINA - 中文开源技术交流社区...
public class ReaderActivity extends Activity { private ShelfAdapter mAdapter; // 书架列表 private ListVi ...
- mtk android 关机充电,MTK 关机充电 - yueqiulijun的个人空间 - OSCHINA - 中文开源技术交流社区...
充电相关文件目录 alps\vendor\mediatek\proprietary\external\charger\ 充电控制函数:charging_control.cpp // total_tim ...
- 黑白球JAVA_桶中取黑白球 - jiacut的个人页面 - OSCHINA - 中文开源技术交流社区
题目 有一个桶,里面有白球.黑球各100个,现在按下述规则取球: 每次从桶里面拿出来两个球: 如果是两个同色的球,就再放入一个黑球: 如果是两个异色的球,就再放入一个白球. 问:最后桶里面只剩下一个黑 ...
- mysql mcd date_mysql升级5.5 - ifeixiang的个人页面 - OSCHINA - 中文开源技术交流社区
对付Linux的问题,其实很多都是权限问题,细心想一下即可. centos6.4默认装的是mysql5.1,使用 yum update 也update不了.google了一下,找到个yum安装的方法: ...
- maven 公用仓库_maven公共仓库 - yizhichao的个人页面 - OSCHINA - 中文开源技术交流社区...
1.maven包查询: http://mvnrepository.com/ 2.maven公共仓库: http://maven.aliyun.com/nexus/content/groups/publ ...
- java 锁的类型_Java锁的种类 - shawnplaying的个人页面 - OSCHINA - 中文开源技术交流社区...
Java锁和并发需要结合在一块了理解,涉及到了多个话题. 本文主要参考了 http://ifeve.com/java_lock_see1/ 但是我认为原文中有某些错误,我在下面的代码中做了修改. 公平 ...
- java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...
编写程序显示一个时钟.示例输出如图所示. 代码: package com.DisplayClock; import javax.swing.*; import java.awt.*; import j ...
- long logn的大小c语言,基本排序(C语言版) - ________MX的个人页面 - OSCHINA - 中文开源技术交流社区...
###冒泡排序 /** * 冒泡排序 logN^2 * 基本思路:每次从数组底端将最小的数"冒"上来 * **/ void BubbleSort(int *p, int len){ ...
最新文章
- 计算机等级必须在学校考吗,计算机等级考试可以跳过一级考二级吗
- 物联网智能硬件设备身份验证机制
- python下载文件的11种方式_Python下载文件的11种方式
- 在非UI线程中显示Toast
- 英语作文 计算机新技术对生活的影响,急求一篇电脑对于未来生活影响的英语作文,50分 200词左右...
- 在python是什么意思_python 的 表示什么
- Mongoose aggregate 多表关联查询
- 虚构合同、虚开发票套取高校配套科研经费,一副教授被公诉!
- full outer join 与full join的区别_基础小白的SQL的JOIN语法解析
- linux下查看进程与线程
- 数据通信技术初级工程师证题库
- 使用J-link+J-Flash给STM32芯片烧写序列号
- 生成条形码(jsbarcode、vue-barcode)
- Unity 实用小技巧(更新ing)
- Student‘s t分布
- Elasticsearch 实现类似SQL语句中like %关键字% 的单纯模糊查询(不进行分词)
- asp.net房屋出租销售网
- 商标变更的重要性不及时变更的损失
- 茧数SCRM营销自动化行业案例 | 教育行业
- 手把手教你做20道菜全套教程