简介
在应用内部获取当前设备信息。
Flutter
是全平台框架,可以在多种平台上运行,获取设备信息之前要先判断程序运行在哪种平台。
通过dart.io
包下的Platform
类来获取
class Platform {
// ...
static final bool isLinux = (_operatingSystem == "linux");
static final bool isMacOS = (_operatingSystem == "macos");
static final bool isWindows = (_operatingSystem == "windows");
static final bool isAndroid = (_operatingSystem == "android");
static final bool isIOS = (_operatingSystem == "ios");
static final bool isFuchsia = (_operatingSystem == "fuchsia");
// ...
}
使用
- 修改
pubspec.yaml
文件,添加依赖device_info
# ...
dev_dependencies:
# ...
device_info: ^0.4.2+8
# ...
- 在代码中使用
import 'dart:io';
import 'package:device_info/device_info.dart';
void getDeviceInfo() async {
DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
if (Platform.isIOS) {
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
} else if (Platform.isAndroid) {
AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo;
}
}
IosDeviceInfo
类
class IosDeviceInfo {
// ...
final String name;
final String systemName;
final String systemVersion;
final String model;
final String localizedModel;
final String identifierForVendor;
final bool isPhysicalDevice;
final IosUtsname utsname;
// ...
}
AndroidDeviceInfo
类
class AndroidDeviceInfo {
// ...
final AndroidBuildVersion version;
final String board;
final String bootloader;
final String brand;
final String device;
final String display;
final String fingerprint;
final String hardware;
final String host;
final String id;
final String manufacturer;
final String model;
final String product;
final List<String> supported32BitAbis;
final List<String> supported64BitAbis;
final List<String> supportedAbis;
final String tags;
final String type;
final bool isPhysicalDevice;
final String androidId;
// ...
}
发表评论