Проверить события разблокировки блокировки устройства в сервисе переднего плана
Я видел много похожих вопросов и ответов, но не смог найти правильный ответ для своей ситуации.
вот мой подход:
У меня есть служба переднего плана с уведомлениями, которые будут длиться столько, сколько я хочу, теперь я хочу проверить блокировку устройства и разблокировать события в этой службе переднего плана
то есть: когда я нажимаю кнопку "Пуск", я хочу, чтобы устройство само блокировалось через 1 секунду, с этого момента, когда я его разблокирую, он должен запускать другую конкретную службу и снова, когда я ее блокирую, он должен останавливать эту конкретную службу, пока я не выключу весь сервис переднего плана
вот мой сервис:
if (Objects.equals(intent.getAction(), IZIGaapsConstants.ACTION.STARTFOREGROUND_ACTION)) {
Intent deviceLockCheck = new Intent(this, IZIGaapsForegroundNotification.class);
deviceLockCheck .setAction(IZIGaapsConst.LOCK_START);
PendingIntent preStartIntent = PendingIntent.getService(this, 0, deviceLockCheck , 0);
NotificationCompat.Action startIt = new NotificationCompat.Action(R.drawable.ic_start_24dp,
getString(R.string.screen_notification_action_start), precordStartIntent);
startNotificationForeGround(createRecordingNotification(startIt).build(), IZIGaapsConst.DEVICE_LOCK_NOTIFICATION_ID);
}else if (intent.getAction().equals(IZIGaapsConstants.ACTION.STOPFOREGROUND_ACTION)){
stopForeground(true);
stopSelf();
}
if (Objects.equals(intent.getAction(), IZIGaapsConst.LOCK_START)) {
//i want the lock event to be start from here to check for devecie lock and unlock
} else if (Objects.equals(intent.getAction(), IZIGaapsConst.LOCK_STOP)) {
//you know the task :)
}
return START_STICKY;
}
private NotificationCompat.Builder createRecordingNotification(NotificationCompat.Action action) {
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.rec_icon);
NotificationCompat.Builder notification = new NotificationCompat.Builder(this, IZIGaapsConst.RECORDING_NOTIFICATION_CHANNEL_ID)
.setContentTitle(getResources().getString(R.string.screen_recording_notification_title))
.setTicker(getResources().getString(R.string.screen_recording_notification_title))
.setSmallIcon(R.drawable.rec_icon)
.setLargeIcon(Bitmap.createScaledBitmap(icon, 128, 128, false))
.setPriority(Notification.PRIORITY_MIN);
if (action != null)
notification.addAction(action);
return notification;
}
private void startNotificationForeGround(Notification notification, int ID) {
startForeground(ID, notification);
}
Любая помощь будет оценена