@Chesterfield25

Как удалить все уведомления с помощью Accessibility?

Задача стоит в том что бы удалять все уведомления которые создает приложение с помощью 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");
        }
    }
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Удали приложение, которое спамит.
Так как если запретить/удалять эти уведомления "приложение выполняет фоновую работу", оно од ин фиг не сможет работать корректно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы