Я делаю школьный проект, я получаю кучу данных, и у каждого объекта есть отметка времени.
Я просто хочу установить простой диспетчер аварий и пу 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)
}
}
Мой код не работает! уведомления не получены.