code: private static boolean detectLimitedDevice(String osName, String osArchitecture, boolean currentSystem) {
  
      String os = osName.toLowerCase(Locale.US).trim();
      if (os.contains("windows ce")) {
        return true;
      } else if (os.contains("darvin")) {
        return true;
      } else if (os.contains("android")) {
        return true;
      } else if (os.contains("phone")) {
        return true;
      } else if (os.contains("firefox os")) {
        return true;
      } else if (os.contains("bada")) {
        return true;
      } else if (os.contains("sailfish")) {
        return true;
      } else if (os.contains("tvos")) {
        return true;
      } else if (os.startsWith("ios")) {
        return true;
      } else if (os.contains("iphone")) {
        return true;
      } else if (os.contains("nintendo")) {
        return true;
      } else if (os.contains("wii")) {
        return true;
      } else if (os.contains("xbox")) {
        return true;
      } else if (os.contains("playstation")) {
        return true;
      } else if (os.startsWith("rim ")) {
        return true;
      }
      String arch = osArchitecture.toLowerCase(Locale.US).trim();
      if (arch.equals("arm")) {
        return true;
      }
      if (currentSystem) {
        String vmName = System.getProperty(SystemUtil.PROPERTY_JAVA_VM_NAME).toLowerCase(Locale.US);
        if (vmName.contains("dalvik")) {
          return true;
        }
      }
      return false;
    }
docs: @see #isLimitedDevice()
  
  @param osName - see {@link #getSystemName()}.
  @param osArchitecture - see {@link #getSystemArchitecture()}.
  @param currentSystem - {@code true} if the value should be determined for the system and JVM currently running (in
  this case additional system-properties might be evaluated), {@code false} otherwise.
  @return the value for {@link #isLimitedDevice()}.