Задача стоит в том что бы удалять все уведомления которые создает приложение с помощью Accessibility.
Приложение работает в фоновом режиме и создает уведомление
Notification notification = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
notification = new Notification.Builder(this, CHANNEL_ID)
.setContentTitle("Service is running")
.setContentText("App is performing background tasks")
.setSmallIcon(R.drawable.ic_service_icon)
.build();
}
startForeground(1, notification); // Запуск сервиса в переднем плане
Я пытаюсь удалить все уведомления, в логах мне показывает что уведомления удалены но но уведомление которое создает фоновый процесс продолжает отображаться на телефоне
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
// Получаем информацию о текущем окне
AccessibilityNodeInfo nodeInfo = event.getSource();
if (nodeInfo != null) {
Log.i(TAG, "onAccessibilityEvent: найдено окно");
Log.i(TAG,"ForeGround Accessibility");
// Ищем кнопку "Разрешить" и нажимаем на нее
performActionOnPermissionDialog(nodeInfo);
// Вызывайте метод для удаления уведомлений
if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
Log.i(TAG, "Удаляем уведомления, так как изменилось состояние окна");
removeNotifications();
}
}
}
private void removeNotifications() {
// Получаем NotificationManager
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (notificationManager != null) {
// Удаляем уведомления по ID. Например, если ваш ForegroundService использует ID 1:
notificationManager.cancelAll();
Log.i(TAG, "Уведомление с ID 1 удалено");
} else {
Log.w(TAG, "Не удалось получить NotificationManager");
}
}