| [](https://github.com/dart-lang/core/actions/workflows/os_detect.yaml) | |
| [](https://pub.dev/packages/os_detect) | |
| [](https://pub.dev/packages/os_detect/publisher) | |
| Platform independent access to information about the current operating system. | |
| ## Querying the current OS | |
| Exposes `operatingSystem` and `operatingSystemVersion` strings similar to those | |
| of the `Platform` class in `dart:io`, but also works on the web. The | |
| `operatingSystem` of a browser is the string "browser". Also exposes convenience | |
| getters like `isLinux`, `isAndroid` and `isBrowser` based on the | |
| `operatingSystem` string. | |
| To use this package instead of `dart:io`, replace the import of `dart:io` with: | |
| ```dart | |
| import 'package:os_detect/os_detect.dart' as os_detect; | |
| ``` | |
| That should keep the code working if the only functionality used from `dart:io` | |
| is operating system detection. You should then use your IDE to rename the import | |
| prefix from `Platform` to something lower-cased which follows the style guide | |
| for import prefixes. | |
| Any new platform which supports neither `dart:io` nor `dart:html` can make | |
| itself recognizable by configuring the `dart.os.name` and `dart.os.version` | |
| environment settings, so that `const String.fromEnvironment` can access them. | |
| ## Overriding the current OS string | |
| It's possible to override the current operating system string, as exposed by | |
| `operatingSystem` and `operatingSystemVersion` in | |
| `package:os_detect/os_detect.dart`. To do so, import the | |
| `package:os_detect/override.dart` library and use the `overrideOperatingSystem` | |
| function to run code in a zone where the operating system and version values are | |
| set to whatever values are desired. | |
| The class `OperatingSystemID` can also be used directly to abstract over the | |
| operating system name and version. The `OperatingSystemID.current` defaults to | |
| the values provided by the platform when not overridden using | |
| `overrideOperatingSystem`. |