AlarmManager Kotlin - PullRequest
       17

AlarmManager Kotlin

0 голосов
/ 08 января 2020

Я делаю школьный проект, я получаю кучу данных, и у каждого объекта есть отметка времени.

Я просто хочу установить простой диспетчер аварий и пу sh уведомление о запланированном время для каждого объекта. il oop набор данных и объект foreach вызывают функцию setAlarm. сейчас я просто передаю объект DateTime в виде строки.

    private fun setAlaram(){
/// this just converts the time from GMT +0 into GMT +1
/// my API always returns time in GMT +0
        val time = Companion.convertToTimezoneCET("2020-01-01T21:08:00.000Z")
        val calender = Calendar.getInstance(Locale.getDefault())
        Log.v("ALARM", "ALARMTIME: ${time.hour}:${time.minute}")
        calender.set(Calendar.HOUR_OF_DAY, time.hour)
        calender.set(Calendar.MINUTE, time.minute)
        calender.set(Calendar.SECOND, 0)
        calender.set(Calendar.MILLISECOND,0)

        noti(calender)
    }

    private fun noti(c: Calendar){
        val alarmManager = context!!.getSystemService(ALARM_SERVICE) as AlarmManager
        val requestCode = 100
        var pendingIntent: PendingIntent? = null

        val sendIntent = Intent(context, AlarmReceiver::class.java)
        sendIntent.putExtra("EXTRA_PESAN", "EXTRA MESSAGE")

        pendingIntent = PendingIntent.getBroadcast(context, requestCode, sendIntent, PendingIntent.FLAG_UPDATE_CURRENT)
        alarmManager.setExact(AlarmManager.RTC_WAKEUP, c.timeInMillis, pendingIntent)
        //ClearAlarms
//         alarmManager.cancel(pendingIntent)

    }

И это мой AlarmReceiver

class AlarmReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        val builder = NotificationCompat.Builder(context!!)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentText(context.getString(R.string.alarmMessage))
            .setContentTitle(context.getString(R.string.app_name))
            .setPriority(NotificationCompat.PRIORITY_HIGH)
            .build()

        val notiManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
        notiManager.notify(0, builder)
    }
}

Мой код не работает! уведомления не получены.

...