Чтобы удалить уведомления, созданные с помощью уведомлений Android (в данном случае, фоновым сервисом), нужно понимать, что `Notification` в вашем коде запускается как часть метода `startForeground()`. Когда вы используете `startForeground()`, уведомление становится постоянным, и его нельзя просто удалить через функции доступности.
Чтобы убедиться, что уведомления действительно удаляются, следуйте этим шагам:
1. **Остановите сервис**: Когда сервис останавливается, и он больше не работает в фоновом режиме, уведомление автоматически удаляется. Вы можете вызвать метод `stopForeground(true)` из вашего сервиса, чтобы остановить его:
```java
@Override
public void onDestroy() {
super.onDestroy();
stopForeground(true); // Удаляет уведомление
}
```
2. **Убедитесь, что используете правильный ID уведомления**: В вашем коде вы используете ID `1` для уведомления. Если вы хотите контролировать удаление определенных уведомлений, убедитесь, что используете правильный ID при вызове `stopForeground()`.
3. **Отправка уведомлений с помощью NotificationManager**: Если у вас есть другие уведомления, которые необходимо удалить, вы можете использовать `NotificationManager` для их удаления:
```java
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(1); // Удаляет уведомление с ID 1
```
4. **Проверка наличия услуг**: Убедитесь, что сервис действительно остановлен и не работает в фоновом режиме. Это можно сделать с помощью методов проверки состояния сервиса.
5. **Обработка событий доступности**: Если вы хотите использовать функции доступности для удаления уведомлений, убедитесь, что вы обрабатываете правильные события и вызываете методы, которые действительно удаляют уведомления.
### Ваш код для удаления уведомлений в `onAccessibilityEvent()`
Если вы хотите удалить уведомления в методе `onAccessibilityEvent()`, то вам нужно убедиться, что в этом месте ваш код на самом деле не только вызывает `removeNotifications()`, но и останавливает сам сервис, если это предусмотрено:
```java
private void removeNotifications() {
Log.i(TAG, "Удаляем уведомления");
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(1); // Удаление уведомления с ID 1
}
```
Убедитесь, что вызов `removeNotifications()` происходит после проверки состояния сервиса и вызова `stopForeground(true)`.
Следуя этим шагам и учитывая логику, описанную выше, вы сможете удалить все уведомления, связанные с вашим фоновым сервисом.