Хорошо, я думаю, что название довольно очевидно ... Я должен использовать API-интерфейс WorkManager, чтобы запланировать уведомление, которое будет отображаться каждый раз, когда устройство подключено к Интернету и заряжается (подключается). Мне удалось создать работника и заставить его отображать уведомление, но проблема в том, что он показывает уведомление только один раз. После этого, даже если я отключу / повторно подключусь к Wi-Fi и отключу / подключу кабель, уведомление не будет отображаться.
val notificationTriggerConstraint = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresCharging(true)
.build()
val notificationWorker = OneTimeWorkRequest.Builder(NotificationWorker::class.java)
.setConstraints(notificationTriggerConstraint)
.build()
class NotificationWorker(@NonNull context: Context, @NonNull workerParameters: WorkerParameters) : Worker(context, workerParameters) {
override fun doWork(): Result {
val notificationBuilder = NotificationCompat.Builder(applicationContext, "CHANNEL")
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle("Background job")
.setContentText("Device is charging and connected to WIFI")
.setStyle(NotificationCompat.BigTextStyle().bigText("Device is charging and connected to WIFI"))
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
val notificationManager = NotificationManagerCompat.from(applicationContext)
notificationManager.notify(0, notificationBuilder.build())
return Result.SUCCESS
}}
Это ограничения и работник, который создает уведомление. Я не могу использовать PeriodicWorkRequest, так как приложение не должно работать. Кто-нибудь может предложить подход здесь? Спасибо