Flutter實戰-擷取裝置資訊
- 一. 前言
- 二. 配置
-
- 1.添加依賴
- 2.配置IOS
- 三. 代碼步驟
-
- 1.擷取平台資訊
- 2.擷取裝置資訊
- 四. 總結
一. 前言
Flutter實戰—擷取裝置資訊。
二. 配置
1.添加依賴
device_info:Get current device information from within the Flutter application.
版本查詢 : https://pub.dev/packages/device_info
1.1 在項目的
pubspec.yaml
檔案中添加依賴:device_info
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
//添加依賴
device_info: 0.4.0+2
1.2 安裝下載下傳依賴包
flutter packages get
2.配置IOS
如果需要在IOS運作,需要安裝cocoapods和brew:
brew install cocoapods
pod setup
三. 代碼步驟
1.擷取平台資訊
Flutter是全平台架構,可以在多種平台上運作,擷取裝置資訊之前要先判斷程式運作在哪種平台。
判斷平台:通過
dart.io
包下的Platform
Platform
類來擷取。
1.1 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");
...
}
1.2 示例
(1)導入
dart.io
包
(2)示例—判斷平台(IOS/Android)
if(Platform.isIOS){
print('This is IOS.');
}else if(Platform.isAndroid)
print('This is Android.');
}
2.擷取裝置資訊
2.1導入
device_info
包
2.2 擷取裝置資訊(IOS/Android)
void getDeviceInfo() async{
DeviceInfoPlugin deviceInfo = new DeviceInfoPlugin();
if(Platform.isIOS){
IosDeviceInfo iosDeviceInfo = await deviceInfo.iosInfo;
}else if(Platform.isAndroid){
AndroidDeviceInfo androidDeviceInfo = await deviceInfo.androidInfo;
}
}
2.3 IosDeviceInfo類
(1) 擷取具體屬性值:iosDeviceInfo.屬性名(
String name = iosDeviceInfo.name
)
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;
...
}
2.4 AndroidDeviceInfo類
(1) 擷取具體屬性值:androidDeviceInfo.屬性名(
String brand = androidDeviceInfo.brand
)
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;
...
}
(2) AndroidBuildVersion類:
androidDeviceInfo.version
class AndroidBuildVersion {
...
final String baseOS;
final String codename;
final String incremental;
final int previewSdkInt;
final String release;
final int sdkInt;
final String securityPatch;
...
}
四. 總結
釋出此文,目的隻是為學習到的知識點進行記錄,如有錯誤請多多指點。