/**
   * Returns the {@link AccessibilityServiceInfo}s of the installed accessibility services.
   *
   * @return An unmodifiable list with {@link AccessibilityServiceInfo}s.
   */
  public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList() {
    final IAccessibilityManager service;
    final int userId;
    synchronized (mLock) {
      service = getServiceLocked();
      if (service == null) {
        return Collections.emptyList();
      }
      userId = mUserId;
    }

    List<AccessibilityServiceInfo> services = null;
    try {
      services = service.getInstalledAccessibilityServiceList(userId);
      if (DEBUG) {
        Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
      }
    } catch (RemoteException re) {
      Log.e(LOG_TAG, "Error while obtaining the installed AccessibilityServices. ", re);
    }
    if (services != null) {
      return Collections.unmodifiableList(services);
    } else {
      return Collections.emptyList();
    }
  }
 /**
  * Returns the {@link AccessibilityServiceInfo}s of the installed accessibility services.
  *
  * @return An unmodifiable list with {@link AccessibilityServiceInfo}s.
  */
 public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList() {
   List<AccessibilityServiceInfo> services = null;
   try {
     services = mService.getInstalledAccessibilityServiceList();
     if (DEBUG) {
       Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
     }
   } catch (RemoteException re) {
     Log.e(LOG_TAG, "Error while obtaining the installed AccessibilityServices. ", re);
   }
   return Collections.unmodifiableList(services);
 }