美文网首页
Android调用系统闹钟设置闹钟提醒

Android调用系统闹钟设置闹钟提醒

作者: 寻水的鱼Chock | 来源:发表于2024-07-30 17:54 被阅读0次

添加权限(不需要动态申请权限)

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
1、向系统中添加闹钟数据

时间到了后会自动响铃提醒

fun addAlertClock(context: Activity, item: AlertItem) {
    val dayIntDef = mutableListOf(
        Calendar.MONDAY,
        Calendar.TUESDAY,
        Calendar.WEDNESDAY,
        Calendar.THURSDAY,
        Calendar.FRIDAY,
        Calendar.SATURDAY,
        Calendar.SUNDAY
    )
    val ALERT_REQUEST_CODE = 100
    val intent = Intent(AlarmClock.ACTION_SET_ALARM)
    intent.putExtra(AlarmClock.EXTRA_HOUR, item.hour)//小时 0-23
    intent.putExtra(AlarmClock.EXTRA_MINUTES, item.minute)//分钟 0-59
    intent.putExtra(AlarmClock.EXTRA_MESSAGE, item.message)//闹钟备注名称呼
    val days = ArrayList(item.days.map { dayIntDef[it - 1] })
    intent.putIntegerArrayListExtra(AlarmClock.EXTRA_DAYS, days)//周几响铃 周一-周日 设置7个就是每天
    //intent.putExtra(AlarmClock.EXTRA_RINGTONE, uri.toString())//设置铃声uri 可不设
    intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true)//是否跳过设置UI
    intent.putExtra(AlarmClock.EXTRA_VIBRATE, true)//是否震动
    context.startActivityForResult(intent, ALERT_REQUEST_CODE)//不会有结果返回
}
class AlertItem {
    var hour = 0//小时
    var minute = 0//分钟
    var days = LinkedHashSet<Int>()//空: 每天  1-7 表示周一到周日
    var message: String = ""
}
2、取消闹钟
fun delAlertClock(context: Activity, item: AlertItem) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        val intent = Intent(AlarmClock.ACTION_DISMISS_ALARM)
        if (item.message.isNotEmpty()) {
            intent.putExtra(
                AlarmClock.EXTRA_ALARM_SEARCH_MODE, AlarmClock.ALARM_SEARCH_MODE_LABEL
            )
            intent.putExtra(AlarmClock.EXTRA_MESSAGE, item.message)
            intent.putExtra(AlarmClock.EXTRA_HOUR, item.hour)
            intent.putExtra(AlarmClock.EXTRA_MINUTES, item.minute)
            intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true)
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        } else {
            intent.putExtra(
                AlarmClock.EXTRA_ALARM_SEARCH_MODE, AlarmClock.ALARM_SEARCH_MODE_TIME
            )
            val pm = item.hour > 12
            val hour = if (item.hour > 12) item.hour - 12 else item.hour
            intent.putExtra(AlarmClock.EXTRA_IS_PM, pm)
            intent.putExtra(AlarmClock.EXTRA_HOUR, hour)
            intent.putExtra(AlarmClock.EXTRA_MINUTES, item.minute)
            intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true)
        }
        context.startActivity(intent)
    }
}

但是没有效果,会跳转到系统闹钟界面,需要手动关闭;如果有人能取消成功,麻烦留言提醒,十分感谢。

如果本文对你有帮助就点个赞支持下吧~~~

相关文章

  • Android设置闹钟提醒

    最近在进行的备忘录项目需要用到定时提醒,用闹钟服务是再好不过了的选择,但是之前只是在看入门书籍的时候模模糊糊地抄了...

  • android 设置系统闹钟和系统日历提醒

    现在有一个定时提醒的功能, 用 AlarmManager 自己来做,有多少坑做过的都知道。(应用被kill, 应用...

  • Android设置取消系统闹钟

    系统闹钟包名:com.android.deskclock 调用系统闹钟,首先在清单文件AndroidManifes...

  • 设置闹钟提醒报错

    设置闹钟提醒时在华为手机上报了以下错误。 从提示看是缺少com.android.alarm.permission....

  • android AlarmManager使用详解

    AlarmManager是android中系统自带的一个提醒服务,比如设置闹钟,做一个定时任务,还可以设置重复操作...

  • 为自己设置闹钟

    为自己设置闹钟 每天为自己设置闹钟其实是非常需要的,提醒自己该干什么了,也是效率的体现。 起床时间需要闹钟,是提醒...

  • 调闹钟提醒

    做一件事如何一直坚持下去?如同刷牙洗脸一样,每天都必须做,又不会忘记的,天天睡觉前或者睡醒后,条件反射地习惯...

  • Android闹钟设置的解决方案

    Android设置闹钟并不像IOS那样这么简单,做过Android设置闹钟的开发者都知道里面的坑有多深。下面记录一...

  • Android闹钟服务AlarmManager

    获取服务 设置闹钟 Android4.4以上 方法声明: 示例: 注意:如果设置的起始时间小于当前时间,闹钟将会马...

  • 设置多次闹钟

    有多少人每天是睡到自然醒的,大部分人应该都是靠闹钟起床的,我设置了两个闹钟,一个七点一个八点,七点是提醒我的,八点...

网友评论

      本文标题:Android调用系统闹钟设置闹钟提醒

      本文链接:https://www.haomeiwen.com/subject/imughjtx.html