Flutter系统信息查询插件windows_system_info的使用

发布于 1周前 作者 h691938207 来自 Flutter

Flutter系统信息查询插件 windows_system_info 的使用

windows_system_info 是一个用于获取 Windows 机器详细信息的 Dart 包。本文将介绍如何使用该插件来获取系统信息,并提供一个完整的示例 Demo。

特性

  • 支持平台:Windows(如果有 PowerShell 则更好)
  • 提供多种属性和方法来获取系统的各种信息,如用户名、设备名称、内存信息、网络适配器等。

支持的 Getter

Getter 类型 描述
userName String 用户名
windowsSystemInformation AllInfo? 完整的系统信息
windowsSystemStaticInformation DeviceStaticinfo? 设备静态信息
deviceName String 设备名称
is64bit bool 是否为 64 位操作系统
is32bit bool 是否为 32 位操作系统
isInitInProgress bool 初始化是否正在进行
isInitilized Future<bool> 初始化是否完成
disks List<DiskLayoutInfo> 硬盘信息(如 HDD、SSD)
graphics GraphicsInfo 图形相关信息
memories List<MemoryInfo> 内存信息
network List<NetworkInfo> 网络适配器信息
baseBoard BaseBoardInfo? 主板信息
chassis ChassisInfo? 机箱信息(如笔记本、制造商等)
system SystemInfo? 基本系统信息(如制造商等)
os OsInfo? 操作系统信息(如版本、构建号等)
bios BiosInfo? BIOS 信息

枚举类型 (WindowsSystemInfoFeat)

名称 描述
all 默认值,所有信息
diskLayout 磁盘布局信息
username 仅用户名
gpu GPU 和显示信息
memory 内存详情
network 网络详情
baseboard 主板详情
chassis 机箱详情
cpu CPU 详情
system 系统详情
bios BIOS 详情
os 操作系统详情

使用步骤

  1. 添加依赖
    pubspec.yaml 文件中添加最新版本的 windows_system_info 依赖:

    dependencies:
      flutter:
        sdk: flutter
      windows_system_info: ^latest_version
    
  2. 导入包

    import 'package:windows_system_info/windows_system_info.dart';
    
  3. 初始化插件

    在应用启动时调用 initWindowsInfo 方法来初始化插件。你可以指定需要获取的信息类型:

    await WindowsSystemInfo.initWindowsInfo(requiredValues: [WindowsSystemInfoFeat.cpu]);
    
  4. 获取信息

    使用相应的 Getter 来获取所需信息。例如:

    WindowsSystemInfo.cpu;
    

示例代码

以下是一个完整的示例 Demo,展示了如何在 Flutter 应用中使用 windows_system_info 插件来获取 CPU 信息并显示在界面上。

import 'package:flutter/material.dart';
import 'package:windows_system_info/windows_system_info.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Windows Details App',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const ExampleWindowDetailsApp(),
    );
  }
}

class ExampleWindowDetailsApp extends StatefulWidget {
  const ExampleWindowDetailsApp({Key? key}) : super(key: key);

  @override
  State<ExampleWindowDetailsApp> createState() => _ExampleWindowDetailsAppState();
}

class _ExampleWindowDetailsAppState extends State<ExampleWindowDetailsApp> {
  static CpuInfo? _cpuInfo;

  @override
  void initState() {
    super.initState();
    initInfo();
  }

  Future<void> initInfo() async {
    // 初始化插件并请求 CPU 信息
    await WindowsSystemInfo.initWindowsInfo(requiredValues: [WindowsSystemInfoFeat.cpu]);
    
    if (await WindowsSystemInfo.isInitilized) {
      setState(() {
        _cpuInfo = WindowsSystemInfo.cpu;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('CPU Information'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: _cpuInfo != null
              ? [
                  const Text('CPU INFO', style: TextStyle(fontSize: 20)),
                  const Divider(height: 8.0),
                  Text('CPU Manufacturer: ${_cpuInfo?.manufacturer}'),
                  Text('CPU Model: ${_cpuInfo?.model}'),
                  Text('CPU Cores: ${_cpuInfo?.cores}'),
                ]
              : const [CircularProgressIndicator()],
        ),
      ),
    );
  }
}

运行效果

  • 当应用启动时,会首先显示一个加载指示器 (CircularProgressIndicator)。
  • 一旦初始化完成并且成功获取到 CPU 信息,页面会更新并显示 CPU 的制造商、型号和核心数。

总结

通过 windows_system_info 插件,开发者可以轻松获取 Windows 系统的各种硬件和软件信息。希望这个示例能够帮助你更好地理解和使用该插件。如果你有更多问题或建议,请参考官方文档或提交 PR。


更多关于Flutter系统信息查询插件windows_system_info的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter系统信息查询插件windows_system_info的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中使用windows_system_info插件来获取Windows系统信息的示例代码。这个插件允许你获取Windows操作系统的详细信息,如操作系统版本、设备名称等。

首先,确保你的Flutter项目已经创建,并且位于项目的根目录下。然后,按照以下步骤操作:

  1. 添加依赖: 在你的pubspec.yaml文件中添加windows_system_info依赖。

    dependencies:
      flutter:
        sdk: flutter
      windows_system_info: ^x.y.z  # 替换为最新版本号
    

    然后运行flutter pub get来安装依赖。

  2. 配置插件: 由于windows_system_info是特定于Windows平台的插件,你需要在windows文件夹下创建一个PluginRegistrant.cmake文件(如果还没有的话),并确保你的CMakeLists.txt文件正确配置。不过,对于大多数用途,这一步通常不是必需的,除非你有其他原生插件需要配置。

  3. 使用插件: 在你的Dart代码中导入windows_system_info包并使用它来获取系统信息。以下是一个简单的示例:

    import 'package:flutter/material.dart';
    import 'package:windows_system_info/windows_system_info.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> {
      String? osVersion;
      String? deviceName;
    
      @override
      void initState() {
        super.initState();
        _getSystemInfo();
      }
    
      Future<void> _getSystemInfo() async {
        try {
          // 获取操作系统版本
          final osInfo = await WindowsSystemInfo.operatingSystemVersion;
          setState(() {
            osVersion = 'OS Version: ${osInfo.major}.${osInfo.minor}.${osInfo.build}';
          });
    
          // 获取设备名称
          final deviceInfo = await WindowsSystemInfo.deviceName;
          setState(() {
            deviceName = 'Device Name: $deviceInfo';
          });
        } catch (e) {
          print('Error getting system info: $e');
        }
      }
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              title: Text('Windows System Info'),
            ),
            body: Padding(
              padding: const EdgeInsets.all(16.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  if (osVersion != null) Text(osVersion!),
                  SizedBox(height: 16),
                  if (deviceName != null) Text(deviceName!),
                ],
              ),
            ),
          ),
        );
      }
    }
    

    在这个示例中,我们创建了一个简单的Flutter应用,该应用在初始化时调用_getSystemInfo方法来获取操作系统的版本和设备名称,并在UI中显示这些信息。

  4. 运行应用: 确保你的Flutter环境已经正确配置,并且你的设备或模拟器已经连接。然后运行flutter run来启动你的应用。你应该能够在界面上看到Windows系统的版本和设备名称。

请注意,由于windows_system_info是一个特定于Windows平台的插件,因此你只能在Windows设备上运行这个示例。如果你在macOS、Linux或Android/iOS上运行,将会遇到不支持平台的错误。

回到顶部