Возродить NotificationListernerService на устройствах Xiaomi - PullRequest
0 голосов
/ 01 октября 2019

Я тестировал свое приложение, связанное с NotificationListenerService, на своем устройстве Xiaomi и обнаружил, что, как только приложение закрывается, служба также отключается или перестает работать, я нашел обходной путь использования метода togglecomponent, как по этому URL: https://gist.github.com/xinghui/b2ddd8cffe55c4b62f5d8846d5545bf9.

но в этом примере я обнаружил, что каждый раз при переключении компонента создаются несколько клиентов, которые все слушают уведомления, и, таким образом, это приводит к умноженным действиям задачи, предусмотренным классом обслуживания слушателя. Как ограничить количество клиентов, созданных одним, или есть способ восстановить старый клиент с помощью компонента переключения? или любая другая альтернатива для восстановления компонента NotificationListenerService спасибо.

  private void toggleNotificationListenerService() {
        Log.d(TAG, "toggleNotificationListenerService() called");
        ComponentName thisComponent = new ComponentName(this, /*getClass()*/ NotificationCollectorService.class);
        PackageManager pm = getPackageManager();
        pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
        pm.setComponentEnabledSetting(thisComponent, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

    }
...