dart 如何从Flutter检查设备操作系统版本?

z9gpfhce  于 2023-04-27  发布在  Flutter
关注(0)|答案(5)|浏览(352)

Platform.operatingSystem会告诉你是在Android还是iOS上运行。
如何检查我运行的是哪个版本的设备操作系统?

bvuwiixz

bvuwiixz1#

你可以使用platform channels来完成这个任务。在本机中使用操作系统特定的代码来获取版本并将其重新发送到Flutter。这里是一个很好的电池电量示例

n9vozmp4

n9vozmp42#

在我的用例中,我想限制对特定操作系统版本的本机功能的访问。为此,我编写了一个库,允许您为代码的某一部分指定支持的版本。
如果这涵盖了您的用例,请查看库:https://pub.dev/packages/available

import 'package:available/available.dart';

Future<void> doPlatformSpecificThing() async {
  if(await available(ios: const OSRequirement(min: 14))) {
    // this call will only be executed on iOS >= 14
    doPlatformSpecficiThing();
  }
}

如果您只想确定操作系统版本,请查看使用device_info_plus解析操作系统版本的VersionResolver class

cyvaqqii

cyvaqqii3#

将此插件添加到您的pubspec device_info
人类可读的方式是

if (Platform.isAndroid) {
  var androidInfo = await DeviceInfoPlugin().androidInfo;
  var release = androidInfo.version.release;
  var sdkInt = androidInfo.version.sdkInt;
  var manufacturer = androidInfo.manufacturer;
  var model = androidInfo.model;
  print('Android $release (SDK $sdkInt), $manufacturer $model');
  // Android 9 (SDK 28), Xiaomi Redmi Note 7
}

if (Platform.isIOS) {
  var iosInfo = await DeviceInfoPlugin().iosInfo;
  var systemName = iosInfo.systemName;
  var version = iosInfo.systemVersion;
  var name = iosInfo.name;
  var model = iosInfo.model;
  print('$systemName $version, $name $model');
  // iOS 13.1, iPhone 11 Pro Max iPhone
}
ev7lccsx

ev7lccsx4#

import 'dart:io' show Platform;

void main() {
  // Get the operating system as a string.
  String os = Platform.operatingSystem;
  // Or, use a predicate getter.
  if (Platform.isMacOS) {
    print('is a Mac');
  } else {
    print('is not a Mac');
  }
}

Dart SDK > dart:io > Platform
下面是上面的官方文章,如果你想检查它是IOS还是Andriod,你可以使用:

if (Platform.isIOS) {
  print('is a IOS');
} else if (Platform.isAndroid) {
  print('is a Andriod');
} else {
}

以下是如何获得iOS版本

print(Platform.operatingSystem); // "ios"
  print(Platform.operatingSystemVersion); // "Version 15.5 (Build 19F70)"

注意事项:文档中说操作系统版本字符串不适合解析,因为它不遵循标准格式。但是,如果你在你感兴趣的版本上测试它,你应该没问题。例如,你可以在iOS版本13,14,16,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,1和15,并且对于测试的特定版本,返回的字符串将始终相同。我猜提供版本信息的软件包会使用这个字符串,并对它进行一些智能解析,以确定实际的操作系统版本。

um6iljoc

um6iljoc5#

可以使用dart:io

import 'dart:io' show Platform;

String osVersion = Platform.operatingSystemVersion;

相关问题