diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b15323fc..140de6d7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -251,6 +251,7 @@ + runningServices = manager.getRunningServices(Integer.MAX_VALUE); + if (runningServices == null) { + LOG.info("ensureCollectorRunning() runningServices is NULL"); + return; + } + for (ActivityManager.RunningServiceInfo service : runningServices) { + if (service.service.equals(collectorComponent)) { + LOG.warn("ensureCollectorRunning service - pid: " + service.pid + ", currentPID: " + Process.myPid() + ", clientPackage: " + service.clientPackage + ", clientCount: " + service.clientCount + + ", clientLabel: " + ((service.clientLabel == 0) ? "0" : "(" + getResources().getString(service.clientLabel) + ")")); + if (service.pid == Process.myPid() /*&& service.clientCount > 0 && !TextUtils.isEmpty(service.clientPackage)*/) { + collectorRunning = true; + } + } + } + if (collectorRunning) { + LOG.debug("ensureCollectorRunning: collector is running"); + return; + } + LOG.debug("ensureCollectorRunning: collector not running, reviving..."); + toggleNotificationListenerService(); + } + + private void toggleNotificationListenerService() { + LOG.debug("toggleNotificationListenerService() called"); + ComponentName thisComponent = new ComponentName(this, NotificationListener.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); + + } + + @Override + public IBinder onBind(Intent intent) { + return null; + } +} \ No newline at end of file