Flutter设备信息获取插件device_info_x的使用
Flutter设备信息获取插件device_info_x的使用
平台支持
Android | iOS | MacOS | Web | Linux | Windows |
---|---|---|---|---|---|
✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
特性
- [✅] - 稳定
- [❗] - 不完全稳定(某些信息无法获取,请谨慎使用)
- [❌] - 实验性(不能保证,尚未添加到插件中)
支持获取的信息
-
[❗] Android
-
[✅] 系统
-
[❗] 电池
-
[✅] 摄像头
-
[❗] CPU
-
[✅] 显示屏
-
[✅] DRM
-
[✅] 内存
-
[❗] 网络
-
[❌] SIM卡
-
[❌] 系统文件
-
[❌] 热管理信息
示例应用截图
Android 信息 | 电池 | 摄像头 | CPU |
![]() |
![]() |
![]() |
![]() |
显示屏 | DRM | 内存 | 网络 | 系统 |
![]() |
![]() |
![]() |
![]() |
![]() |
安装
在 pubspec.yaml
文件中添加依赖:
dependencies:
device_info:
git:
url: https://github.com/Lucidplus-IT-Solution/device_info_plugin.git
ref: main
使用
1. 添加必要的权限到 AndroidManifest.xml
<!-- 如果需要访问摄像头和存储信息 -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:ignore="ScopedStorage"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<!-- 如果需要访问手机信息 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<!-- 如果需要访问网络信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
2. 导入库
import 'package:device_info_x/device_info_x.dart';
3. 获取 DeviceInfoX
实例
DeviceInfoX deviceInfoX = DeviceInfoX();
4. 获取设备信息
final result = await deviceInfoX.getAndroidDeviceInfo();
if (result != null) {
final map = result.toMap(); // 转换为 Map
}
可用方法
getAndroidDeviceInfo() - 获取所有信息
(System, CPU, ANDROID, DRM, MEMORY, CAMERA, BATTERY, DISPLAY, THERMAL, NETWORK, SIMINFO, SYSTEMFILES)
将来会添加的功能
- ✅ 已添加基本设备信息,目前仅支持 Android
- ❌ 将添加对 iOS 的支持
- ❌ 移除已弃用的库
示例代码
import 'package:device_info_example/app/modules/welcome/welcome.dart';
import 'package:flutter/material.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
iconTheme: const IconThemeData(
color: Colors.blueAccent,
),
useMaterial3: true,
),
useInheritedMediaQuery: true,
home: const Welcome(),
);
}
}
更多关于Flutter设备信息获取插件device_info_x的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter设备信息获取插件device_info_x的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何使用Flutter设备信息获取插件 device_info_x
的代码示例。这个插件可以帮助你获取设备的详细信息,包括设备名称、操作系统版本、品牌、型号等。
首先,确保你已经在 pubspec.yaml
文件中添加了 device_info_x
依赖:
dependencies:
flutter:
sdk: flutter
device_info_x: ^2.0.0 # 请根据需要替换为最新版本号
然后,运行 flutter pub get
来安装依赖。
接下来,你可以在你的 Flutter 应用中使用这个插件来获取设备信息。以下是一个完整的示例代码:
import 'package:flutter/material.dart';
import 'package:device_info_x/device_info_x.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Device Info Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: DeviceInfoScreen(),
);
}
}
class DeviceInfoScreen extends StatefulWidget {
@override
_DeviceInfoScreenState createState() => _DeviceInfoScreenState();
}
class _DeviceInfoScreenState extends State<DeviceInfoScreen> {
Map<String, dynamic> _deviceData = {};
@override
void initState() {
super.initState();
_getDeviceInfo();
}
Future<void> _getDeviceInfo() async {
DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
// 获取 Android 设备信息
if (Platform.isAndroid) {
AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo;
setState(() {
_deviceData = <String, dynamic>{
'Brand': androidInfo.brand,
'Model': androidInfo.model,
'Android Version': androidInfo.version.release,
'SDK Version': androidInfo.version.sdkInt,
'Board': androidInfo.board,
'Fingerprint': androidInfo.fingerprint,
'Hardware': androidInfo.hardware,
'Manufacturer': androidInfo.manufacturer,
'Product': androidInfo.product,
};
});
}
// 获取 iOS 设备信息
else if (Platform.isIOS) {
IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
setState(() {
_deviceData = <String, dynamic>{
'Name': iosInfo.name,
'System Name': iosInfo.systemName,
'System Version': iosInfo.systemVersion,
'Model': iosInfo.model,
'Localized Model': iosInfo.localizedModel,
'Identifier For Vendor': iosInfo.identifierForVendor,
'Is Physical Device': iosInfo.isPhysicalDevice,
};
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Device Info'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: _deviceData.isEmpty
? Center(child: CircularProgressIndicator())
: ListView(
children: <Widget>[
for (var entry in _deviceData.entries)
ListTile(
title: Text('${entry.key}: ${entry.value}'),
),
],
),
),
);
}
}
在这个示例中,我们创建了一个简单的 Flutter 应用,它会在初始化时调用 _getDeviceInfo
方法来获取设备信息,并将信息显示在屏幕上。
- 对于 Android 设备,我们获取了品牌、型号、Android 版本等信息。
- 对于 iOS 设备,我们获取了设备名称、系统版本、型号等信息。
这些信息是通过 DeviceInfoPlugin
插件获取的,并根据平台类型(Android 或 iOS)进行不同的处理。最后,我们将获取到的设备信息显示在 ListView
中。
希望这个示例能帮助你理解如何使用 device_info_x
插件来获取设备信息。