device_info_plus
Get current device information from within the Flutter application.
Platform Support
| Android | iOS | macOS | Web | Linux | Windows |
|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Requirements
- Flutter >=3.29.0
- Dart >=3.7.0 <4.0.0
- iOS >=12.0
- macOS >=10.14
- Java 17
- Kotlin 2.2.0
- Android Gradle Plugin >=8.12.1
- Gradle wrapper >=8.13
Usage
Import package:device_info_plus/device_info_plus.dart, instantiate DeviceInfoPlugin
and use the Android and iOS, Web getters to get platform-specific device
information.
Example:
import 'package:device_info_plus/device_info_plus.dart';
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
print('Running on ${androidInfo.model}'); // e.g. "Moto G (4)"
IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
print('Running on ${iosInfo.utsname.machine}'); // e.g. "iPod7,1"
WebBrowserInfo webBrowserInfo = await deviceInfo.webBrowserInfo;
print('Running on ${webBrowserInfo.userAgent}'); // e.g. "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0"
The plugin provides a data method that returns platform-specific device
information in a generic way, which can be used for crash-reporting purposes.
However, the data provided by this data method is currently not serializable
(i.e. it is not 100% JSON compatible) and shouldn't be treated as such.
import 'package:device_info_plus/device_info_plus.dart';
final deviceInfoPlugin = DeviceInfoPlugin();
final deviceInfo = await deviceInfoPlugin.deviceInfo;
final allInfo = deviceInfo.data;
Android
To get serial number on Android your app needs to meet one of official requirements.
In case the app doesn't meet any of requirements plugin will return unknown.
iOS
The name property exposes the assigned device name by the owner. This value is obtained from the property UIDevice.current.name.
This property requires special entitlement com.apple.developer.device-information.user-assigned-device-name in iOS 16 and later, otherwise, the property name will always be iPad or iPhone.
