Android調(diào)用系統(tǒng)鬧鐘設(shè)置鬧鐘提醒

添加權(quán)限(不需要?jiǎng)討B(tài)申請權(quán)限)

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
1、向系統(tǒng)中添加鬧鐘數(shù)據(jù)

時(shí)間到了后會(huì)自動(dòng)響鈴提醒

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)//小時(shí) 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)//周幾響鈴 周一-周日 設(shè)置7個(gè)就是每天
    //intent.putExtra(AlarmClock.EXTRA_RINGTONE, uri.toString())//設(shè)置鈴聲uri 可不設(shè)
    intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true)//是否跳過設(shè)置UI
    intent.putExtra(AlarmClock.EXTRA_VIBRATE, true)//是否震動(dòng)
    context.startActivityForResult(intent, ALERT_REQUEST_CODE)//不會(huì)有結(jié)果返回
}
class AlertItem {
    var hour = 0//小時(shí)
    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)
    }
}

但是沒有效果,會(huì)跳轉(zhuǎn)到系統(tǒng)鬧鐘界面,需要手動(dòng)關(guān)閉;如果有人能取消成功,麻煩留言提醒,十分感謝。


如果本文對你有幫助就點(diǎn)個(gè)贊支持下吧~~~
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容