Тревога не работает, если дисплей закрыт или заблокирован - PullRequest
0 голосов
/ 27 сентября 2019

У меня проблема с android-build-version pre 28 / Orio, установленный будильник не работает только после разблокировки дисплея устройства.

Есть ли способ решить эту проблему, кто-то может мне помочь?

заблокируйте мой код:

fun setAlarm(ctxt: Context, id: Int, hour: Int, minute: Int,
                                    nameOfAlarm: String = "",
                                    startDateFormatted: Any? = null,
                                    index: Int = -1) {
        val alarmMgr: AlarmManager?
        val alarmIntent: PendingIntent?

        alarmMgr = ctxt.getSystemService(Context.ALARM_SERVICE) as AlarmManager
        val intent = Intent(ctxt, PlayerReceiver::class.java)
        intent.putExtra("index", index)
        alarmIntent = PendingIntent.getBroadcast(ctxt, id, intent, 0)

        val calendar = Calendar.getInstance()
        calendar.timeInMillis = System.currentTimeMillis()
        calendar.set(Calendar.HOUR_OF_DAY, hour)
        calendar.set(Calendar.MINUTE, minute)
        calendar.set(Calendar.SECOND, 0)

        alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.timeInMillis, alarmIntent)

        if (nameOfAlarm != "" && startDateFormatted != null){
            val hour: Int = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                (startDateFormatted as LocalDateTime).hour
            }else{
                (startDateFormatted as Date).hours
            }

            val minute: Int = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                (startDateFormatted as LocalDateTime).minute
            }else{
                (startDateFormatted as Date).minutes
            }
            println("✓ ${nameOfAlarm} was set at ${hour}:${minute} today")
        }
    }
...